在我的表格中,我有名字和姓氏。很少有名字是大写的(ABRAHAM),很少有名字是小写(亚伯拉罕),很少有名字是以ucword(亚伯拉罕)开头的。
所以当我使用REGEXP'^ [abc]'进行where条件时,我没有得到正确的记录。如何将名称更改为小写并使用SELECT QUERY。
SELECT * FROM `test_tbl` WHERE cus_name REGEXP '^[abc]';
这是我的查询,如果记录是小写的,可以正常工作,但我的记录是中间的,我的所有cus名称都不是小写,所有的名字都像ucword。
因此对于上面的查询,我没有得到正确的记录显示。
答案 0 :(得分:13)
我认为您应该查询您的数据库,确保名称被降低,假设名称是您要找出的名称,并且在您的应用程序中,您已将其降低为“亚伯拉罕”,现在您的查询应该像这样:
SELECT * FROM `test_tbl` WHERE LOWER(cus_name) = name
由于我不知道你使用的是什么语言,我只是放了名字,但要确保降低这个名称,你应该检索亚伯拉罕,亚伯拉罕或任何名字的变体!
Hepe有帮助!
答案 1 :(得分:5)
你试过了吗?
SELECT * FROM `test_tbl` WHERE LOWER(cus_name) REGEXP '^[abc]';
答案 2 :(得分:1)
您不需要regexp来搜索以特定字符串或字符开头的名称。
SELECT * FROM `test_tbl` WHERE cus_name LIKE 'abc%' ;
%是通配符char。除非您为列cus_name设置二进制属性或使用二元运算符
,否则搜索不区分大小写SELECT * FROM `test_tbl` WHERE BINARY cus_name LIKE 'abc%' ;
答案 3 :(得分:0)
已经提供了一些有效的选项,但是仅使用正则表达式就可以了:
SELECT * FROM `test_tbl` WHERE cus_name REGEXP '^[abcABC]';