我有一张表,其中有些名称带有前导空格,有些名称没有。
我有一个变量$name
,我必须与表中的名称匹配,$name
它没有前导空格。在这种情况下,我应该如何编写查询?
修剪每个值的前导和尾随空格。
SELECT *
FROM tableName
WHERE TRIM(colName) = '$name'
TRIM
修剪前导和尾随
LTRIM
修剪前导空格
RTRIM
修剪尾随空格
我建议使用SELECT *
FROM tableName
WHERE colName = '$name' Or colName = concat(' ' , '$name')
. 主要原因是索引的使用:如果您对计算列进行过滤,ltrim(colName)
则数据库引擎不能在 colName 上使用任何索引。我的建议是允许在 colName 上使用索引。