我的数据库中有一个表,其中包含以下信息:
活动:R1A1,R1A2,R1A2_2
我的问题是我试图获得不包含第二部分(_2)的所有活动。
我正在尝试以下查询:SELECT activity FROM table_name WHERE activity NOT LIKE '%_2'
,但是我仅获得活动R1A1。这是因为R1A2在其名称上包含第二个数字。我该如何解决?正确的查询是什么?我想获得所有没有_2或类似名称的活动。
如果我采用逆方法(SELECT activity FROM table_name WHERE activity NOT LIKE 'R1%'
,我会得到正确的结果。
如何获得所需的东西?感谢您的回答!
答案 0 :(得分:1)
在MYSQL中,下划线是通配符,与%
相似,只不过它匹配一个字符。您可以使用\
对其进行转义以获得文字。
这是正确的查询:
SELECT activity FROM table_name WHERE activity NOT LIKE '%\_2'
答案 1 :(得分:0)
LIKE
中的下划线是与任何字符匹配的通配符。你可以逃脱它。这是一种方法:
SELECT activity
FROM table_name
WHERE activity NOT LIKE '%$_2' ESCAPE '$';