应该为列的前3个字符处理'like'子句

时间:2013-11-29 06:29:48

标签: mysql sql

我有一个场景,我需要为前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'。

希望我解释得很好。我用谷歌搜索,发现不够这样做。帮助我。

2 个答案:

答案 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%'