如何在MySQL中仅使用INSTR匹配整个单词?

时间:2015-07-31 03:08:54

标签: mysql

如何使用INSTR(needle,haystack)只获取整个单词匹配的值?

例如,我有这个SQL:

select distinct card_name from wp_wct3 
where INSTR('mtg avacyn restored 4x Birds of Paradise x4', card_name);

并返回以下结果:

1 |天堂鸟

2 |还原

但是,我只希望它返回'天堂鸟',因为它与大海捞针中的一个单词完全匹配,而不仅仅是一个单词的一部分。

如何仅在MySQL中使用INSTR匹配整个单词?

1 个答案:

答案 0 :(得分:1)

假设你的单词用空格分隔,你可以使用这个技巧:

where INSTR(concat(' ', 'mtg avacyn restored 4x Birds of Paradise x4', ' '),         
            concat(' ', card_name, ' '));

您可以使用与like相同的技巧:

where concat(' ', 'mtg avacyn restored 4x Birds of Paradise x4', ' ') like concat('% ', card_name, ' %')