String jcyidsString="bb768bcb3ca649aaaaf073d0f0abe743,4bb214f612a04bb084fd2029572a6c0b,9d36289a4a99421b95cce0f6c0154b42,18351bc3fc1e4263b764767f9cdfd74d",转化为可以在mysql中 not in (#{jcyidsString})能查到不等于这四个值的数据
时间: 2024-01-22 20:20:02 浏览: 71
可以使用 MySQL 的 FIND_IN_SET 函数来实现。具体做法如下:
1. 将 jcyidsString 中的逗号替换成逗号和单引号,再在开头和结尾加上单引号,得到一个类似于 'bb768bcb3ca649aaaaf073d0f0abe743','4bb214f612a04bb084fd2029572a6c0b','9d36289a4a99421b95cce0f6c0154b42','18351bc3fc1e4263b764767f9cdfd74d' 的字符串。
可以使用以下代码实现:
```
String[] jcyids = jcyidsString.split(",");
String jcyidsInSql = "'" + String.join("','", jcyids) + "'";
```
2. 在 SQL 语句中使用 FIND_IN_SET 函数,将要查询的值和 jcyidsInSql 作为参数传入。注意,FIND_IN_SET 函数返回的是一个整数值,如果返回值为 0,则表示要查询的值不在 jcyidsInSql 中。
可以使用以下代码实现:
```
SELECT * FROM table_name WHERE FIND_IN_SET(column_name, '#{jcyidsInSql}') = 0;
```
其中,table_name 是要查询的表名,column_name 是要查询的列名。这条 SQL 语句将返回不等于 jcyidsString 中的值的所有行。
阅读全文