SELECT*FROM tbl WHERE clm LIKE CONCAT('%',<other sql query LIMIT 1>,'%') - 如何?

ajo*_*ajo 8 mysql sql sql-like

如何将这两个查询合并为一个?

1)这找到狗的日本标志(犬):

SELECT japanese 
  FROM edict 
 WHERE english LIKE 'dog' 
 LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

2)这会找到所有带有"狗"(犬)标志的日语单词:

SELECT japanese 
  FROM edict 
 WHERE japanese LIKE '%?%';
Run Code Online (Sandbox Code Playgroud)

3)我将这两者合二为一,因为这不起作用?!

SELECT japanese 
FROM edict 
WHERE japanese
LIKE CONCAT('%',
    SELECT japanese FROM edict WHERE english LIKE 'dog' LIMIT 1,'%'
);
Run Code Online (Sandbox Code Playgroud)

Vin*_*ard 22

括号内很重要,因此,试试这个:

SELECT japanese
FROM edict
WHERE japanese LIKE CONCAT('%', 
                           (SELECT japanese FROM edict WHERE english LIKE 'dog' LIMIT 1), 
                           '%');
Run Code Online (Sandbox Code Playgroud)

不过,告诉我们你收到的错误可能会很好.


OMG*_*ies 6

使用:

SELECT a.japanese 
  FROM EDICT a
  JOIN EDICT b ON b.japanese = a.japanese
 WHERE b.english LIKE 'dog'
Run Code Online (Sandbox Code Playgroud)

我不建议使用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
Run Code Online (Sandbox Code Playgroud)