1

我有两张桌子:歌曲和歌手

这是我的查询:

    Select * FROM (
    SELECT
    idx,
    name,
    IDsinger,
    permission,
    (name LIKE '%XXX%') As relevancy,
    'table1' As t
    FROM `songs`
   where
   isActive<>'0' AND name LIKE '%XXX%'
UNION
    SELECT
        idx,
        name,
        CreationDate,
        permission,
        (name LIKE '%XXX%') As relevancy,
        'table2' As t
        FROM `singers`
        WHERE isActive<>'0' AND name LIKE '%XXX%'
) AS X
order by relevancy LIMIT 10

问题是如果我写“akon孤独”没有找到结果。

但是如果我写“akon”或“lonely”就会找到结果。

我会喜欢改进查询的建议..

谢谢

4

1 回答 1

0

你的结果是正确的。AKON 是歌手,而 Lonely 是歌曲。歌曲或歌手都不是孤独的。

听起来您正在尝试进行更复杂的搜索形式,例如包含。

http://technet.microsoft.com/en-us/library/ms187787.aspx

你可以试试

name like '%' + @xxx + '%' or @xxx like '%' + name + '%'
于 2013-10-29T07:49:21.800 回答