我是 sql 新手,我想知道如何在名为的列中找到值末尾的字母或符号Name
?例如,如果我会找到我要写的东西,select * from 'table' where 'Name' like '%es%'
但它会找到我所有的行都包含es
让我们说 - lesl, pespe, mess
...但是如何编写 select ,它将只选择带有 'es'
At the end of word 的值?...使用regex
我将使用 es\Z
.....提前谢谢!
问问题
116525 次
6 回答
24
您必须删除最后一个%
,因此它只会选择以 .结尾的单词es
。
select * from table where Name like '%es'
于 2013-03-10T15:40:20.733 回答
7
您目前正在匹配: ..where 'Name' like '%es%'
。
这相当于anything, then 'es' then anything else
。
删除最后一个%
更改 where to
anything then 'es'
。
简而言之..你需要..where 'Name' like '%es'
于 2013-03-10T15:44:15.450 回答
4
查询 ..where 'Name' like '%es' 将查找名称以“ES”结尾的列。但是,如果我们需要查找名称以“E”或“S”结尾的列,则查询将是
..其中'名称'喜欢'%[ES]'
于 2015-06-21T15:41:08.127 回答
0
于 2020-02-05T02:12:03.227 回答
0
- 如果您想查找以“test”之类的名称开头的名称,请使用 => 从表中选择名称,其中名称类似于“test%”。
- 如果您想查找以“test”之类的名称结尾的名称,请使用 => 从表中选择名称,其中名称类似于“%test”。
- 如果要查找以 s 开头并以 h 结尾的名称,请使用 => 从名称类似于 's%' 的表中选择名称和名称类似于 '%h' 的名称,或者只是从名称类似于 's%h' 的表中选择名称。
于 2020-01-05T06:43:58.270 回答
0
使用正则表达式运算符/函数尝试模式 [az]ed($)。
图案说明:
[az] - 匹配任何字母
es - 从字面上匹配 es
($) - 字符串结尾(所以请确保它后面没有任何字母)
完整查询将是:
select * from test
where ingr regexp '[a-z]es($)'
于 2021-11-08T14:49:43.950 回答