我正在尝试构建一个查询,根据类别列中的特定类别从表提要中选择数据。我有第二个表,其中列出了查询还应该考虑的其他类别。我不知道如何将其包含在下面的代码中。
例如:如果$category =“体育”,下面的查询将选择所有类别匹配“体育”的数据。第二表列出了“体育”、“足球”和“拜仁明辰”这两个类别。新的查询现在应该选择所有的数据,其中类别比赛‘体育’,‘足球’和‘拜仁慕尼黑’。
$sqlCommand = "SELECT * FROM feeds where category like '$category'";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
While ($row = mysqli_fetch_array($query)) {
$fid1 = $row["id"];
$feed_id1 = $row["feed_id"];
$link1 = $row["link"];
$title1 = $row["title"];
$output .= '<a href="detail/' . $fid1 . '" title="' . $title1 . '">' . $title1 . '</a><br/>';
}
mysqli_free_result($query);
echo $output;
发布于 2018-04-04 06:19:59
也许像这样的东西可以:
CREATE TABLE data (data integer, category varchar(40));
INSERT INTO data (data, category) VALUES (10, "sport");
INSERT INTO data (data, category) VALUES (20, "soccer");
INSERT INTO data (data, category) VALUES (30, "programming");
INSERT INTO data (data, category) VALUES (40, "Bayern Munich");
CREATE TABLE category_lookup (category1 varchar(40), category2 varchar(40));
INSERT INTO category_lookup (category1, category2) VALUES ("sport", "Bayern Munich");
INSERT INTO category_lookup (category1, category2) VALUES ("sport", "soccer");
INSERT INTO category_lookup (category1, category2) VALUES ("programming", "java");
查询:
SELECT * FROM data WHERE category IN (
SELECT "sport" UNION
SELECT category2 FROM category_lookup WHERE category1 LIKE "sport");
参见SQL:http://www.sqlfiddle.com/#!9/a56b73/1/0
如果您在category_lookup表中添加一个条目以进行自我查找:
INSERT INTO category_lookup (category1, category2) VALUES ("sport", "sport");
当然,您可以在查询中去掉UNION。
https://stackoverflow.com/questions/49643080
复制相似问题