如果标题不明确,我很抱歉。
我有一张table叫 data
在那个表中有一列叫做 barcode
条形码与此类似:
TEST210001m1c8Wsa
条形码的格式如下:
作业:测试2
自动递增编号:10001
类型标识符:m1
唯一id:c8wsa
我试图计算整个表中与job、type id和unique id匹配的列中的条形码数量。我不关心自动递增。我正在使用下面的查询,但它似乎不像我所期望的那样工作:
SELECT COUNT(*) FROM data WHERE barcode LIKE 'test2%' AND SUBSTRING('m1', LENGTH(barcode)-7,2)='m1' AND RIGHT('c8Wsa', 5)='c8Wsa'
我肯定我用的是 SUBSTRING
不正确,因为如果删除它,查询将按预期返回结果。有人能告诉我我做错了什么吗?我肯定我少了一些小东西。
3条答案
按热度按时间dw1jzc5e1#
您需要为中的第一个参数指定列名
substring()
功能和相同right()
功能也b91juud32#
下面是另一种使用
REGEXP
:这假设自动递增的数字总是固定在5位。如果可以是可变的,则可以使用以下模式:
yruzcnhs3#
用这样的和来代替。
这样,您就可以有效地计算由where子句过滤的条形码的所有子字符串。