14

我是 sql 新手,我想知道如何在名为的列中找到值末尾的字母或符号Name?例如,如果我会找到我要写的东西,select * from 'table' where 'Name' like '%es%'但它会找到我所有的行都包含es
让我们说 - lesl, pespe, mess...但是如何编写 select ,它将只选择带有 'es'At the end of word 的值?...使用regex我将使用 es\Z.....提前谢谢!

4

6 回答 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

您也可以使用正则表达式

select distinct city from station where city REGEXP '[aeiou]$';

资源:了解更多关于 REGEXP

于 2020-02-05T02:12:03.227 回答
0
  1. 如果您想查找以“test”之类的名称开头的名称,请使用 => 从表中选择名称,其中名称类似于“test%”。
  2. 如果您想查找以“test”之类的名称结尾的名称,请使用 => 从表中选择名称,其中名称类似于“%test”。
  3. 如果要查找以 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 回答