Regex SQL正则表达式搜索全名

Regex SQL正则表达式搜索全名,regex,Regex,这可能真的很简单。 所以,我有这个表,用户 有“全名”字段的 假设我有这样的条目 "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 = Sm

这可能真的很简单。 所以,我有这个表,用户 有“全名”字段的

假设我有这样的条目

"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'
基本上,我需要一个正则表达式函数来搜索 查询*(*是否为通配符?)

或 (结果字符串中空格后的第一个字符)查询

这有意义吗?

基本上,我试图模仿instagram搜索中的功能。如果可以的话,看看这个

使用类似SQL的命令和“%”运算符。 比如:-

    SELECT * FROM Names WHERE name LIKE "%Doe%";

使用类似SQL的命令,并使用“%”运算符。 比如:-

    SELECT * FROM Names WHERE name LIKE "%Doe%";
你不需要正则表达式本身。翻译您的需求:

... WHERE (full_name LIKE 'Doe%'    -- query + "wildcard" (that is, starts with query)
           OR                       -- or
           full_name LIKE '% Doe%)  -- space + query anywhere
如果您使用的是参数化查询(您应该这样做),则LIKE模式操作数的构造会变得稍微复杂一些:
。。。比如(?| |'%')或者。。。比如(“%”| |?| |“%”)

请注意,您的数据库可能会以稍微不同的方式拼写字符串连接。(例如,MySQL使用函数CONCAT()而不是ANSI double pipes。)

您本身不需要正则表达式。翻译您的需求:

... WHERE (full_name LIKE 'Doe%'    -- query + "wildcard" (that is, starts with query)
           OR                       -- or
           full_name LIKE '% Doe%)  -- space + query anywhere
如果您使用的是参数化查询(您应该这样做),则LIKE模式操作数的构造会变得稍微复杂一些:
。。。比如(?| |'%')或者。。。比如(“%”| |?| |“%”)


请注意,您的数据库可能会以稍微不同的方式拼写字符串连接。(例如,MySQL使用函数CONCAT()而不是ANSI double pipes。)

这行不通,因为像“jdoe martin”这样的东西是有效的,而且不应该有效。没错,pilcrow的答案在这方面是完美的。就像和%-SQL通配符搜索一样,大多数情况下都是这样。这是行不通的,因为像“jdoe martin”这样的东西是有效的,而且不应该有效。没错,皮尔克罗的答案在这方面是完美的。就像和-SQL通配符搜索一样,它可以让您在大部分情况下都能找到它。