gpt4 book ai didi

Mysql IN 在 5.1 上停止工作

转载 作者:行者123 更新时间:2023-11-29 06:48:33 25 4
gpt4 key购买 nike

我正在尝试在 Windows 上的 Mysql Server 5.1 中做一些事情。

我确信这种类型的查询在旧版本的 Mysql 中工作,因为我之前将它提供给客户没有问题。

基本上,我的一个表中的一个字段包含多个 id;比如 1,2,3,4,5

字段类型为varchar

我正在尝试使用 IN 语句查看字段中是否存在值,如下所示。但它什么也没返回。

我做错了什么?有没有更好的办法?谢谢。

mysql> create database testing;
Query OK, 1 row affected (0.00 sec)

mysql> use testing;
Database changed
mysql> create table table1(field1 char(20));
Query OK, 0 rows affected (0.01 sec)

mysql> create table table2(field2 char(20));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into table1 values('1');
Query OK, 1 row affected (0.00 sec)

mysql> insert into table2 values('1,2,3');
Query OK, 1 row affected (0.00 sec)

mysql> select * from table1 where field1 in (select field2 from table2);
Empty set (0.00 sec)

最佳答案

来自您的查询select * from table1 where field1 in (select field2 from table2); ,我想象的是这样的:

剖析子查询 select field2 from table2 ,你将拥有:

field2
'1,2,3'

那么主查询将是(替换):

select * from table1 where field1 in ('1,2,3');

显然它不会返回任何行,因为唯一的值是 table1.field1有是'1' .和 '1' <> '1,2,3' .

好吧,我打赌你正在寻找这个:FIND_IN_SET

示例查询:

SELECT FIND_IN_SET('1', '1,2,3');将返回 1 .

关于Mysql IN 在 5.1 上停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com