在带有或不带前导空格的Mysql表中搜索名称

时间:2012-10-08 06:49:54

标签: php mysql sql

我有一张桌子,其中有些人的名字有一个领先的空间,有些名字没有名字。

我有一个变量$name我必须与表格中的名称匹配,此$name没有前导空格。在这种情况下我应该如何编写查询?

2 个答案:

答案 0 :(得分:3)

修剪每个值的前导和尾随空格。

SELECT *
FROM tableName
WHERE TRIM(colName) = '$name'

TRIM修剪前导和尾随
LTRIM修剪前方空间
RTRIM修剪尾随空格

答案 1 :(得分:0)

我建议使用SELECT * FROM tableName WHERE colName = '$name' Or colName = concat(' ' , '$name') 。主要原因是索引使用:如果过滤计算列ltrim(colName),则数据库引擎无法使用colName上的任何索引。我的建议是允许在colName上使用索引。