我想在數據庫中搜索標題以字母,數字或特殊字符開頭。選擇全部位置[首字母以數字或特殊字符開頭]
對於letter是好的我用這個:
SELECT author FROM lyrics WHERE author LIKE 'B%';
但對於數量和特殊字符,我需要你的幫助
SELECT author FROM lyrics WHERE author LIKE '[0-9]%';
我想在數據庫中搜索標題以字母,數字或特殊字符開頭。選擇全部位置[首字母以數字或特殊字符開頭]
對於letter是好的我用這個:
SELECT author FROM lyrics WHERE author LIKE 'B%';
但對於數量和特殊字符,我需要你的幫助
SELECT author FROM lyrics WHERE author LIKE '[0-9]%';
的LIKE
運營商不會像你想要的那樣運作,它需要靜態值和通配符(%
或_
)。您應該使用mysql REGEXP
的正則表達式。喜歡的東西:
SELECT author FROM lyrics WHERE author regexp '^[0-9B]'
應該會發現有B
或數字開頭的所有作者。 ^
是一個主要的錨,意味着字符串必須從那裏開始。 []
建立一個字符類,它是一個字符列表,或者當使用-
時的範圍,0-9
是任何單個數字。
目前還不清楚你的「特殊字符」是什麼,但你可能會考慮否定字符類,這是一個不允許的字符列表。例如。
SELECT author FROM lyrics WHERE author regexp '^[^.!?]'
將列出未與.
,!
,或?
開頭的所有作者。
正則表達式演示:https://regex101.com/r/qjjmNq/1/,https://regex101.com/r/qjjmNq/2/
使用REGEXP
而不是LIKE
SELECT author
FROM lyrics
WHERE author REGEXP '[^[:alnum:]]'
'那裏不是作家正則表達式 '^ [0-9A-ZA-Z]'' – Miky
由於其特殊字符,我利用工作 – Miky