web-dev-qa-db-ja.com

SELECT * FROM table WHERE column LIKE CONCAT( '%'、<other sql query LIMIT 1>、 '%')-どのように?

これらの2つのクエリを1つに組み合わせるにはどうすればよいですか?

1)これは犬(犬)の日本語の記号を見つけます:

SELECT japanese 
  FROM edict 
 WHERE english LIKE 'dog' 
 LIMIT 1;

2)これにより、「犬」(犬)の記号が含まれるすべての日本語の単語が検索されます。

SELECT japanese 
  FROM edict 
 WHERE japanese LIKE '%犬%';

3)これが機能しないため、これら2つを1つに組み合わせるのに問題がありますか?!

SELECT japanese 
FROM edict 
WHERE japanese
LIKE CONCAT('%',
    SELECT japanese FROM edict WHERE english LIKE 'dog' LIMIT 1,'%'
);
9
ajo

括弧は重要なので、これを試してください:

SELECT japanese
FROM edict
WHERE japanese LIKE CONCAT('%', 
                           (SELECT japanese FROM edict WHERE english LIKE 'dog' LIMIT 1), 
                           '%');

ただし、どのようなエラーが発生したかをお知らせいただければ幸いです。

23
Vincent Savard

使用する:

SELECT a.japanese 
  FROM EDICT a
  JOIN EDICT b ON b.japanese = a.japanese
 WHERE b.english LIKE 'dog'

LIMITの使用はお勧めしませんが、これが本当に必要な場合は、次を使用してください。

SELECT a.japanese 
  FROM EDICT a
  JOIN (SELECT t.japanese
          FROM EDICT t
         WHERE t.english LIKE 'dog'
         LIMIT 1) b ON b.japanese = a.japanese
6
OMG Ponies