假设我有这样的数据:
Lena
Lera
Elena
Mark
Allen
Paul
当用户输入' le'我需要回来
按首字母查找字词
之后应该跟随包含' le'字符(全文搜索)
所以它应该返回:
勒 NA 的勒 RA 甲的文件Ñ È的文件 NA
类似的东西(这个例子没有返回任何东西):
SELECT name FROM table WHERE name LIKE 'le%' AND like '%le%' ORDER BY name ASC
谢谢。
答案 0 :(得分:2)
在事实证明UNION混合了子选择的顺序后,我们将尝试别的东西。您可以使用自定义ORDER BY进行尝试。首先是它是以搜索词开头,还是按名称开头。
SELECT name
FROM table
WHERE UPPER(name) LIKE UPPER('%le%')
ORDER BY (CASE WHEN UPPER(name) LIKE UPPER('le%') THEN 1 ELSE 2 END),
name ASC
将字符串与UPPER进行比较有助于忽略大小写。但是UPPER显然只支持ASCII,请阅读this article以获取有关该主题的更多信息。它还包含在比较字符串时忽略大小写的其他方法。