我有一个场景,我需要为前3个字符处理mysql的'like'子句。
例如(table:emp)
----------------------
name | dept |
----------------------
John | finance |
Mickjohn | finance |
Satheesh | IT |
Satheesh | IT-ES |
----------------------
这就是我的表可能看起来的样子,假设这是我的选择查询。
SELECT name from emp where name like '%jo';
这将返回包含'jo'的所有名称,而不管此子字符串的位置如何。 但我想要的是,它应该返回前5个字符中包含'jo'的名称。
换句话说, LIKE子句应该处理所选列的前5个字符。反正有吗?
对于上面的查询,默认的LIKE子句返回
---------
name |
----------
john |
Mickjohn |
---------
但我希望它只返回
---------
name |
----------
john |
---------
因为'john'在其前5个字符中只包含'jo'。
希望我解释得很好。我用谷歌搜索,发现不够这样做。帮助我。答案 0 :(得分:2)
您可以使用LEFT
功能执行此操作:
SELECT name FROM emp WHERE LEFT(name, 5) LIKE '%jo%'
答案 1 :(得分:0)
select name from emp where SUBSTRING(name, 1, 5) like '%jo%'