我想在数据库中搜索标题以字母,数字或特殊字符开头。选择全部位置[首字母以数字或特殊字符开头]
对于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