我希望能够在一个表中搜索,其中有时表有全名,但有时只有首字母。我可以把任何字符放在首字母后面,a*如下所示。
名称 | 信息 | |
---|---|---|
A* | Foo | |
鲍勃 | Bar | |
Mike | Boo |
您的想法是正确的,但like
运算符的操作数颠倒了。通配符应该在右边的运算符上:
SELECT *
FROM mytable
WHERE 'Andrew' LIKE IF( RIGHT(name,1) = '*', CONCAT(LEFT(name, 1), '%'), name)
您可以将*
替换为%
并使用like
:
where 'Andrew' like replace(name, '*', '%')