我从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子句中的通配符是否过多?自我加入会导致问题吗?有没有办法以不同的方式编码?我只是傻了吗?
我希望有人可以帮助我。谢谢。
答案 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%')