gpt4 book ai didi

MySQL,在多行中搜索相同的列

转载 作者:行者123 更新时间:2023-11-30 21:37:40 24 4
gpt4 key购买 nike

假设我们有下表:

|--------|-------------|------------|------------|------------|------------|
| tbl_id | tbl_item_id | tbl_data_a | tbl_data_b | tbl_data_c | tbl_data_d |
|--------|-------------|------------|------------|------------|------------|
| 1 | 1 | a1 | b1 | c1 | d1 |
| 2 | 1 | a2 | b2 | c2 | d2 |
| 3 | 1 | a3 | b3 | c3 | d3 |
| 4 | 2 | a1 | b1 | c1 | d1 |
| 5 | 2 | a2 | b2 | c2 | d2 |
| 6 | 3 | a1 | b1 | c1 | d1 |
| 7 | 4 | a1 | b1 | c1 | d1 |
| 8 | 4 | a2 | b2 | c22 | d2 |
|--------|-------------|------------|------------|------------|------------|

我们如何获得 tbl_item_id,它包含所有提供的行的所有正确列数据?


比如我们在php中有如下数据数组:

$arData = [
[a1, b1, c1, d1],
[a2, b2, c2, d2]
];

对于这些数据,我们为每个 tbl_item_id 提供以下信息:

  1. 有效:它具有每个给定行的所有正确数据组合(以及更多,但我们不介意)。
  2. 有效:它具有每个给定行的所有正确数据组合。
  3. 无效:它只有一个给定的组合。
  4. 无效:它具有所需的行数,但由于列 tbl_data_c 而导致第二个数据组合错误。

因此结果必须包含 id 1 和 2。


谢谢大家。

最佳答案

在 MySQL 中,您可以将查询构造为:

SELECT tbl_item_id 
FROM t
WHERE (tbl_data_a, tbl_data_b, tbl_data_c, tbl_data_d) IN
( ('a1', 'b1', 'c1', 'd1'), ('a2', 'b2', 'c2', 'd2') )
GROUP BY tbl_item_id
HAVING COUNT(*) = 2;

这假定您的表没有重复项。

关于MySQL,在多行中搜索相同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53101281/

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