MySQL:在WHERE子句中使用LIKE通配符

时间:2018-01-15 03:34:59

标签: mysql database select inner-join wildcard

我从MySQL数据库中选择数据,我试图用-65deg之类的通配符替换WHERE column_name = 'name'
听起来太容易吧?

原始代码(完美运行)如下所示:

WHERE column_name LIKE '%name%'

我尝试过但失败了,看起来像这样:

SELECT DISTINCT a.title_id, a.artist_id, fe_title.title, fe_artist.artist
FROM fe_title_artist AS a 
INNER JOIN fe_title ON a.title_id = fe_title.id
INNER JOIN fe_artist ON a.artist_id = fe_artist.id
INNER JOIN fe_title_artist AS b 
WHERE a.title_id=b.title_id 
and b.artist_id=(SELECT id FROM fe_artist WHERE artist = 'Patrick Duffy')

这个没有结果。

where子句中的通配符是否过多?自我加入会导致问题吗?有没有办法以不同的方式编码?我只是傻了吗?

我希望有人可以帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

由于Subquery返回超过1行。请使用下面的查询。

SELECT DISTINCT a.title_id, a.artist_id, fe_title.title, fe_artist.artist
FROM fe_title_artist AS a 
INNER JOIN fe_title ON a.title_id = fe_title.id
INNER JOIN fe_artist ON a.artist_id = fe_artist.id
INNER JOIN fe_title_artist AS b 
WHERE a.title_id=b.title_id 
and b.artist_id IN (SELECT id FROM fe_artist WHERE artist LIKE '%Patrick%')