这可能很简单。 所以,我有这个表,用户 这有一个字段'full_name'
说我有像
这样的条目"John Doe"
"Jane Doe"
"Colby Smith Jr"
"Apple Smith"
我需要一个适合这些条件的正则表达式搜索:
query = John => return 'John Doe'
query = Doe => return 'John Doe', 'Jane Doe'
query = Apple => return 'Apple Smith'
query = Smith => return 'Colby Smith Jr', 'Apply Smith'
query = Apple Smith => return 'Apple Smith'
query = Smith Jr => return 'Colby Smith Jr'
基本上,我需要一个可以搜索的正则表达式函数 查询*(*是通配符?)
OR (在我的结果字符串中的空格后面的第一个字符)查询
这有意义吗? 基本上,我试图模仿instagram搜索中的功能。如果可以的话,检查一下。
答案 0 :(得分:1)
您本身不需要正则表达式 。翻译您的要求:
... WHERE (full_name LIKE 'Doe%' -- query + "wildcard" (that is, starts with query)
OR -- or
full_name LIKE '% Doe%) -- space + query anywhere
如果你正在使用参数化查询 - 你应该 - 构建LIKE模式操作数变得有点复杂:... LIKE (? || '%') OR ... LIKE ('% ' || ? || '%')
。
请注意,您的数据库可能会有点不同地拼写字符串连接。 (例如,MySQL使用函数CONCAT()而不是ANSI双管道。)
答案 1 :(得分:0)
使用SQL LIKE命令和'%'运算符。 类似的东西: -
SELECT * FROM Names WHERE name LIKE "%Doe%";