gpt4 book ai didi

php - SQL 查询选择行数,即使变量列表中的列中至少有一个值匹配

转载 作者:行者123 更新时间:2023-11-28 23:59:24 25 4
gpt4 key购买 nike

我有一个名为 Kits 的表,其中有 5 列书籍 ISBN。

  • 因此,即使 ISBN 的至少 1 个值与用于存储 ISBN 的表格套件的 5 列(ISBN_BOOK1、ISBN_BOOK2、ISBN_BOOK3、ISBN_BOOK4、ISBN_BOOK5)中的任何一列匹配,我也想选择行。
  • 如果存在任何一个 ISBN,则返回计数。

我已经为此编写了一个 sql 查询,但只有当最后一个值与任何行匹配时我才会得到行输出。在我的例子中,该值为 7589765432 这是我的 sql 查询:

Select * 
from kits k
left
join kits_cstm kc
on k.id = kc.id_c
where '8192933563'
and '8192933567'
and '8192933568'
and '8192933564'
and '7589765432' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
and kc.city_c = 'BAN'
and kc.kit_for_c = 'SCHL'
and k.deleted = 0
ORDER
BY k.kit_id DESC

最佳答案

您不能使用“AND”将值连接到一个运算符

错误的方式:WHERE '8192933536' 和 '8192933567' IN ({array])正确的方法:WHERE '8192933536' IN ({array]) 和 '8192933567' IN ({array])

但我怀疑您实际上想要做的更像是:

SELECT 
*
FROM
kits k LEFT JOIN kits_cstm kc
ON k.id = kc.id_c
WHERE
('8192933563' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
OR
'8192933567' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
OR
'8192933568' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
OR
'8192933564' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
OR
'7589765432' IN (kc.isbn_book_1_c,kc.isbn_book_2_c,kc.isbn_book_3_c,kc.isbn_book_4_c,kc.isbn_book_5_c)
)
AND
kc.city_c = 'BAN'
AND
kc.kit_for_c = 'SCHL'
AND
k.deleted = 0
ORDER BY
k.kit_id DESC

关于php - SQL 查询选择行数,即使变量列表中的列中至少有一个值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30441040/

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