如何在sql查询中正确使用LIKE语句

Ris*_*han 1 sql sql-server

我有一个数据库,其中包含一个名为groupid和组名的字段.

样本数据

groupid   groupname
123          abc
234          bcr
1237         cde
Run Code Online (Sandbox Code Playgroud)

我喜欢将groupid与另一个输入数据进行比较,其大小大于组ID的大小.

我尝试了一个不能返回正确答案的查询

SELECT * 
  FROM mydata
 WHERE groupid LIKE '12309098';
Run Code Online (Sandbox Code Playgroud)

我的预期答案是 abc

正确答案有哪些变化?

提前致谢

Joa*_*son 8

由于您希望行中的值是输入的前缀而不是相反,您可以转向LIKE另一种方式;

SELECT * 
FROM mydata
WHERE '12309098' LIKE CONCAT(groupid, '%');
Run Code Online (Sandbox Code Playgroud)

一个要测试的SQLfiddle ;

编辑:既然你问过SQLite,你需要使用||连接;

SELECT * 
FROM mydata 
WHERE '12309098' LIKE `groupid` || '%';
Run Code Online (Sandbox Code Playgroud)

另一个SQLfiddle.


xda*_*azz 6

你可以这样做:

SELECT * 
FROM my data
WHERE '12309098' LIKE CONCAT('%', groupid, '%');
Run Code Online (Sandbox Code Playgroud)