用LIKE搜索不同字段的结果



我有2个表在我的数据库(直到现在),一个存储艺术家的名字和另一个存储歌曲(名字和歌词),但我需要使用一个SELECT搜索内部的艺术家的名字,歌曲的名字和歌词一次,但我得到部分结果和很多1292错误。

歌曲表

song_id
artist_id
song_name VARCHAR
song_lyric TEXT

艺人表(artists)

artist_id
artist_name

我的第一个SQL想法是这样的LEFT JOIN:

SELECT s.song_name AS SONG, s.song_id AS ID FROM songs AS s
    LEFT JOIN artists AS a ON s.song_id = a.artist_id
    WHERE s.song_name OR s.song_lyric OR a.artist_name LIKE '%some value%'

SELECT给出了一个结果,如果我使用一个艺术家的名字(如果我有一个唯一的名字),但如果我尝试一些正则表达式,如'Sun', 'Son',我得到了一个空的结果集。

欢迎任何帮助

SELECT s.song_name AS SONG, s.song_id AS ID FROM songs AS s
LEFT JOIN artists AS a ON s.artist_id = a.artist_id
WHERE s.song_name LIKE '%some value%' OR s.song_lyric LIKE '%some value%' 
OR a.artist_name LIKE '%some value%'

试试这个

SELECT s.song_name AS SONG, s.song_id AS ID FROM songs AS s LEFT JOIN artists
    AS a ON s.artist_id = a.artist_id WHERE s.song_name LIKE '%some value%' OR
    s.song_lyric LIKE '%some value%' OR a.artist_name LIKE '%some value%'

最新更新