我有一张桌子,其中有些人的名字有一个领先的空间,有些名字没有名字。
我有一个变量$name
我必须与表格中的名称匹配,此$name
没有前导空格。在这种情况下我应该如何编写查询?
答案 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上使用索引。