SQL SELECT空格不敏感

时间:2014-08-05 08:17:15

标签: php sql select syntax

无论用户是否输入带空格的字符串,获取MySQL SELECT结果的方法是什么?例如,在数据库中,我有列值“B 009”,我想为参数“b 009”和“b009”选择它。 我正在使用PHP。

3 个答案:

答案 0 :(得分:2)

由于您希望不区分大小写,请使用upper

SELECT * FROM table_name  
WHERE upper(REPLACE(column_name, ' ', '')) 
LIKE upper(REPLACE(value_to_be_matched, ' ', ''));

对于MYSQL Fiddle

SELECT * FROM test WHERE 
REPLACE(column1, ' ' , '') = REPLACE('b 009', ' ', '');

答案 1 :(得分:1)

您可以使用REPLACELIKE

来使用以下解决方案
SELECT * FROM table_name 
WHERE REPLACE(column_name, ' ', '') LIKE REPLACE('b 009', ' ', '');
  

演示: http://sqlfiddle.com/#!9/17e2d9/1/0

b 009是您的输入值。使用LIKE的字符串比较不区分大小写,除非其中一个操作数区分大小写(使用区分大小写的排序规则或是二进制字符串)。

答案 2 :(得分:0)

SELECT不区分大小写。对于空格,假设您的列是“user”表中的“name”,您可以使用正则表达式执行此操作:

SELECT * FROM user WHERE name REGEXP 'B *009'