2012-07-21 50 views
1

這可能很簡單。 所以,我有這個表,用戶 具有場「FULL_NAME」SQL Regex搜索全名

說我有喜歡

"John Doe" 
"Jane Doe" 
"Colby Smith Jr" 
"Apple Smith" 

我需要一個正則表達式搜索,將符合這些條件的條目:

​​

所以基本上,我需要一個正則表達式函數,將搜索 查詢*(*爲通配符?)

或 (我的結果字符串中的空格後面的第一個字符)查詢

這是否有意義?
基本上,我試圖模仿instagram的搜索功能。如果可以,請檢查一下。

回答

0

使用SQL LIKE命令和'%'運算符。 喜歡的東西: -

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

這不起作用,因爲像「jdoe martin」這樣的東西是有效的,它不應該是。 – 2012-07-21 22:56:23

+0

誠然,在這方面,pilcrow的答案是完美的。 LIKE和% - SQL通配符搜索 - 儘管你可以找到大部分路徑。 – 2012-07-21 23:18:31

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雙管道)。

+0

絕對天才。謝謝 :) – 2012-07-21 23:03:02