我的数据库包含一个名为groupid和group name的字段。
示例数据
groupid groupname
123 abc
234 bcr
1237 cde
我喜欢将groupid与其他输入数据进行比较,其大小大于组ID的大小。
我尝试了一个不能返回正确答案的查询
SELECT *
FROM mydata
WHERE groupid LIKE '12309098';
我的预期答案是abc
对正确答案进行了哪些更改
提前致谢
答案 0 :(得分:8)
由于您希望行中的值是输入的前缀而不是相反,您只需转向LIKE
即可;
SELECT *
FROM mydata
WHERE '12309098' LIKE CONCAT(groupid, '%');
编辑:既然您询问了SQLite,那么您需要使用||
进行连接;
SELECT *
FROM mydata
WHERE '12309098' LIKE `groupid` || '%';
答案 1 :(得分:6)
你可以这样做:
SELECT *
FROM my data
WHERE '12309098' LIKE CONCAT('%', groupid, '%');
答案 2 :(得分:1)
你可以使用这样的东西。但它对您的SQL Server非常主观。对于Oracle,下面的语法应该没问题
SELECT *
FROM mydata
WHERE groupid LIKE SUBSTR('12309098',1, LENGTH(groupid));
答案 3 :(得分:0)
如果您确定输入数据将以123开头,那么:
SELECT * FROM mydata WHERE groupid LIKE '123%';
如果您确定输入数据将包含123,则:
SELECT * FROM mydata WHERE groupid LIKE '%123%';