php - MySQL从同一个表中选择具有相同连接ID的多行

标签 php mysql sql

MySQL 数据库示例:

data_name | page_id | data
--------------------------
brand | 83 | brandA
brand | 88 | brandA
brand | 89 | brandA *
type | 89 | typeA *
type | 90 | typeA
type | 98 | typeA

我唯一要输入的数据是:

data_name = brand, 
data_name = type,
data = brandA,
data = typeA

我需要的是第一个相同的page_id。所以在这种情况下,89,89 是相同的。这就是我要返回的结果。

我所拥有的几乎可以工作的是:

 SELECT * FROM `data` WHERE (`data_name` = 'brand' AND `data` = 'brandA') OR (`data_name` = 'type' AND `data` = 'typeA')

我可以在 PHP 中获取结果,但我更愿意在 MySQL 中找出答案。

有什么想法吗? 谢谢

最佳答案

只是猜测...

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(data_name VARCHAR(12) NOT NULL
,page_id  INT NOT NULL
,data VARCHAR(12) NOT NULL
,PRIMARY KEY(data_name,page_id)
);

INSERT INTO my_table VALUES
('brand',83,'brandA'),
('brand',88,'brandA'),
('brand',89,'brandA'),
('type',89,'typeA'),
('type',90,'typeA'),
('type',98,'typeA');

SELECT x.page_id 
  FROM my_table x 
 WHERE (data_name,data) IN(('brand','brandA'),('type','typeA')) 
 GROUP  
    BY page_id 
HAVING COUNT(*) = 2;
+---------+
| page_id |
+---------+
|      89 |
+---------+

关于php - MySQL从同一个表中选择具有相同连接ID的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529735/

相关文章:

php - 删除 jquery .click 上的特定 SQL 行。 (我试图在单击时从数据库中删除图像)

java - 存储可通过 php 调用的 java 可执行文件

sql - SQL Server 的良好实践 : nvarchar(max) performance

php - 如何在一个订单中创建包含多个产品的数据库模型

php - 使用 SQL 检查预约时间是否适合用户工作时间 - 夜间建议错误

php - 如何将表单模板保存到formbuilder构建的数据库中

mysql - Lua mySQL更新语句和where子句

mysql - 限制表 A 返回的行数,但不限制表 B 返回的行数

mysql - 在 MySQL Workbench 中搜索多个字符串

mysql - 在Mysql中跨列使用stddev