匹配表值中第一个字符与查询匹配的位置



我希望能够在一个表中搜索,其中有时表有全名,但有时只有首字母。我可以把任何字符放在首字母后面,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, '*', '%')

相关内容

  • 没有找到相关文章

最新更新