比方說,例如,你有一個數據庫中的隨機字符串:APKHDP搜索字符與MySQL
我想搜索包含字符PHP(按順序)的所有字符串。所以我搜索PHP並返回上面的字符串。或者我搜索HPP,它什麼都不返回。
有沒有一個簡單的解決方案,使這可能,也許使用REGEX?這聽起來很簡單。但是,我發現的這些問題到目前爲止是非常複雜的。
我正在使用PHP(因此是示例!),並且我很高興將PHP集成到解決方案中,如果這是最好的解決方案。
比方說,例如,你有一個數據庫中的隨機字符串:APKHDP搜索字符與MySQL
我想搜索包含字符PHP(按順序)的所有字符串。所以我搜索PHP並返回上面的字符串。或者我搜索HPP,它什麼都不返回。
有沒有一個簡單的解決方案,使這可能,也許使用REGEX?這聽起來很簡單。但是,我發現的這些問題到目前爲止是非常複雜的。
我正在使用PHP(因此是示例!),並且我很高興將PHP集成到解決方案中,如果這是最好的解決方案。
SELECT * FROM table WHERE text_field REGEXP '.*P.*H.*P.*'
The doc。
xdazz,你是明星。非常感謝你。剛剛通過我的REGEX cheatsheet完成了這個格式,現在它非常有意義。很好也很簡單。正是我在找的。 – user1100149 2012-07-09 11:03:29
使用MySQL正則表達式 - 你可以匹配的東西,但不能取代 - 例如:
選擇 'APKHDP' REGEXP( '[PHP]')
返回 '1'(即,正則表達式匹配字符串)。
儘管上面的正則表達式可能不適合您的需求(它匹配字母P,H和P的任何用法),所以您必須對其進行調整。
你可以讓你的正則表達式比較複雜,或者你可以做多的比賽:
SELECT field FROM TABLE WHERE field REGEXP(match1) AND field REGEXP(match2)..etc
無論似乎簡單到你...
我最初是在思考這些問題。我想這會起作用,雖然有點混亂。雖然欣賞了迴應。任何解決方案都比沒有解決方案好! – user1100149 2012-07-09 11:05:43
SELECT *
FROM `COLUMNS`
WHERE `TABLE_NAME`
REGEXP 'APKHDP'
不幸的是,這會返回確切的字符串。和LIKE一樣。 – user1100149 2012-07-09 11:06:56
你不能只使用一個像選擇?也許我錯過了一些東西: select * from myTable where myField like'%PHP%' – 2012-07-09 10:21:17
就我所知,這不是PHP相關的問題。如果您有隨機字段內容,並且只想顯示與特定字符串匹配的行,請使用: SELECT * FROM表WHERE字段LIKE「%PHP%」; – Ron 2012-07-09 10:22:57
看起來LIKE對於這個問題並不好,因爲他們想匹配一個模式,而不是固定的字符串或部分字符串。 – Codecraft 2012-07-09 10:30:28