【发布时间】:2016-10-13 23:24:23
【问题描述】:
我的数据库中有 2 个表(到目前为止),一个用于存储艺术家姓名,另一个用于存储歌曲(名称和歌词),但我需要使用一个 SELECT 在艺术家姓名、歌曲名称中进行搜索和歌词,但我得到了部分结果和很多 1292 错误。
歌表(歌曲)
song_id
artist_id
song_name VARCHAR
song_lyric TEXT
艺术家表(艺术家)
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”,我会得到一组空结果。
欢迎任何帮助
【问题讨论】:
-
WHERE s.song_name LIKE '%some value%' OR s.song_lyric LIKE '%some value%' OR a.artist_name LIKE '%some value%' -
您的预期输出是什么?为什么在
LEFT JOIN中使用s.song_id = a.artist_id? -
我希望像隐藏字段一样的 ID(在 Lazarus 中)创建另一个搜索,以及基于艺术家姓名、歌曲名称或某些歌词的歌曲名称。