如何在 SQL 语句中使用 LIKE 在字段内容中查找后跟"_"字符的数字?

  • 本文关键字:字符 查找 数字 语句 SQL 字段 LIKE php sql
  • 更新时间 :
  • 英文 :


如何在SQL语句中使用LIKE查找后跟"_"字段内容中的字符?

示例:如何查找19_21或_

?我知道_是一个保留通配符....但我需要在这里把它当作一个真实的角色来使用……谢谢! !

我有一个类表。每个类都有一个用户文本字段。文本字段看起来像这样(对于一条记录):

19 _m ~ 43 ~ 2 ~ 4米~ 45 ~ 0 ~ 0米~ 46 ~ 0 ~ 0米~ 47 ~ 0 ~ 0米~ 48 ~ 0 ~ 0米~ 49 ~ 0 ~ 0米~ 50 ~ 0 ~ 0米~ 51 ~ 0 ~ 0-t ~ 6 ~ 0 ~ 0-t ~ 7 ~ 8 0 ~ 0-t ~ ~ 0 ~ 0-t ~ 9 ~ 0 ~ 0米~ 52 ~ 0 ~ 0米~ 53 ~ 0 ~ 0米~ 54 ~ 0 0 ~ 0-t ~ ~ 0-t ~ 10 ~ 11 ~ 12 0 ~ 0-t ~ ~ 0 ~ 0-t ~ 13 ~ 0 ~ 0 | 21 _m ~ 43 ~ 0 ~ 0米~ 45 ~ 0 ~ 0米~ 46 ~ 0 ~ 0米~ 47 ~ 0 ~ 0米~ 48 ~ 0 ~ 0米~ 49 ~ 0 ~ 0米~ 50 ~ 0 ~ 0米~ 51 ~ 0 ~ 0-t ~ 6 ~ 0 ~ 0-t ~ 7 ~ 8 0 ~ 0-t ~ ~ 0 ~ 0-t ~ 9 ~ 0 ~ 0米~ 52 ~ 0 ~ 0米~ 53 ~ 0 ~ 0米~ 54 ~ 0 0 ~ 0-t ~ ~ 0-t ~ 10 ~ 11 ~ 12 0 ~ 0-t ~ ~ 0 ~ 0-t ~ 13 ~ 0 ~ 0

用户id是后面带_的数字。在这个例子中,19_21岁和_.

我想做的是

select * from the classes table where a certain user (number followed by _) 

存在于这个USERS字段中。

我试过[…)准备

("SELECT * from classes WHERE USERI LIKE '".$id."\_%'") 

却不给我这张唱片…它返回一个空结果。

如果您事先不知道下划线之前要查找的数字是什么,请使用REGEXP

示例:SELECT * FROM my_table WHERE field_whith_number REGEXP '^([0-9])+_';

REGEXP的简要说明:

^匹配行起始

([0-9])+匹配1个或多个号码

_匹配单个下划线

请注意,对于非常大的表,这不是一个理想的解决方案,因为它会进行表扫描。

如果您正在使用SQL Server进行查询,则可以使用以下内容完成

...
WHERE USERS LIKE TheID + '#_' ESCAPE '#'

LIKE之后的ESCAPE指定一个转义字符,该转义字符可用于指定特殊字符作为字面量。

尝试使用反斜杠:

SELECT * from classes WHERE USERI LIKE '19_'

最新更新