1

可能重复:
MySQL LIKE IN()?

我有 2 张桌子

atm_name_initials(初始)

KS
FW
GE
SD

atm_tasks_dit (task_name,task_given_to)

task1 KS
task2 GE
task3 GE/SD

现在我想建立所有与他们SELECT不同的名字atm_name_initials WHEREIN LIKE atm_tasks_dit.task_given_to

这是我到目前为止所拥有的:

SELECT initial FROM atm_name_initials
WHERE initial 
IN
(
    SELECT DISTINCT task_given_to FROM atm_tasks_dit
    WHERE on_big_project_id = 29
)

atm_name_initials.initial如果确切地建立了值,那么这段代码会搜索什么atm_tasks_dit.task_given_to

我想要类似的东西

SELECT initial FROM atm_name_initials
WHERE initial 
"IS LIKE" IN

'%
(
    SELECT DISTINCT task_given_to FROM atm_tasks_dit
    WHERE on_big_project_id = 29
)
%'

或者其他的东西...

任何帮助将不胜感激,谢谢!

4

3 回答 3

2

使用 MySQL sintax 提出的答案之间的混合:

SELECT DISTINCT initial
  FROM atm_tasks_dit,atm_name_initials
 WHERE task_given_to LIKE CONCAT('%',initial,'%')

以防万一检查SQL Fiddle 代码

这是另一个类似的问题

于 2012-08-23T13:05:59.203 回答
0

尝试这个:

SELECT initial 
FROM   atm_name_initials
join   atm_tasks_dit
on     initial like concat('%',task_given_to,'%')
WHERE  on_big_project_id = 29
于 2012-08-23T12:03:04.413 回答
0

尝试

Select distinct ani.initial--atd.task_name,atd.task_given_to
From atm_tasks_dit atd
join atm_name_initials ani on atd.task_given_to like '%' + ani.initial + '%'
-- WHERE on_big_project_id = 29

结果

最初的

GE 
KS 
SD

我在 Sql Server 中做过,因为我没有安装 MySql

于 2012-08-23T12:13:59.110 回答