我的分类(标题)以字母A开头
$sql = "select * from category_data WHERE category LIKE 'A%'";
并且正在运作,但我如何从数据库中选择category ( title )
不以[A-Z]
或[1-9]
开头的符号
答案 0 :(得分:2)
SELECT * FROM category_data WHERE ASCII(UPPER(LEFT(category,1))) IN(...)
您可以在IN
子句中传递允许的ASCII个字符。
如果您想跳过特定范围,可以使用NOT BETWEEN x AND y;
答案 1 :(得分:1)
你可以简单地使用MySQL的REGEXP
功能,如
SELECT * FROM `category_data` WHERE `category` REGEXP '^[^a-zA-Z0-9]'
答案 2 :(得分:0)
您可以检查第一个字符是否不在字母或数字中:
$sql = "select * from category_data WHERE substr(category,1) NOT LIKE '%[^a-zA-Z]%' AND substr(category,1) NOT LIKE '%[^0-9]%'";
答案 3 :(得分:0)
使用REGEX
$sql = "select * from category_data WHERE category NOT REGEXP '^[^A-Z0-9]'";
这将为您提供不以A-Z和0-9
开头的类别名称答案 4 :(得分:0)
SELECT * FROM category_data WHERE LEFT( category, 1 ) NOT IN ('a','b','c')
//在IN列表中添加剩余的char
答案 5 :(得分:0)
如果您不想使用正则表达式
,请尝试此操作SELECT * FROM category_data WHERE
(LEFT(category, 1) NOT BETWEEN 'a' AND 'Z') AND
(LEFT(category, 1) NOT BETWEEN 0 AND 9);
LEFT(category, 1)
抓取category
列的第一个字符,并确认它不在a-z
或0-9
之间。