【发布时间】:2014-08-05 08:17:15
【问题描述】:
无论用户是否输入带空格的字符串,获得 MySQL SELECT 结果的最佳方法是什么?例如,在数据库中,我有列值“B 009”,我想为参数“b 009”和“b009”选择它。 我正在使用 PHP。
【问题讨论】:
无论用户是否输入带空格的字符串,获得 MySQL SELECT 结果的最佳方法是什么?例如,在数据库中,我有列值“B 009”,我想为参数“b 009”和“b009”选择它。 我正在使用 PHP。
【问题讨论】:
既然要不区分大小写,请使用大写
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', ' ', '');
【讨论】:
SELECT * FROM table_name
WHERE REPLACE(column_name, ' ', '') LIKE REPLACE('b 009', ' ', '');
值b 009 是您的输入值。使用LIKE 进行的字符串比较不区分大小写,除非其中一个操作数区分大小写(使用区分大小写的排序规则或者是二进制字符串)。
【讨论】:
SELECT 不区分大小写。对于空格,假设您的列是“用户”表中的“名称”,您可以使用正则表达式:
SELECT * FROM user WHERE name REGEXP 'B *009'
【讨论】: