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 WHEREが設立されたいIN 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
)

EXACLYの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,'%')

念のため、SQLFiddleコードを確認してください。

そして、ここに別の同様の質問があります。

于 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

MySqlをインストールしていないので、SQLServerで実行しました

于 2012-08-23T12:13:59.110 に答える