gpt4 book ai didi

php - 从匹配值的逗号分隔的 mysql 行返回所有结果

转载 作者:行者123 更新时间:2023-12-01 00:16:10 25 4
gpt4 key购买 nike

我有一个包含新闻数据和类别的 mysql 表,我正在尝试选择某个类别中的所有数据。我想得不够远,所以我目前在某些时候没有使用规范化表,我可能会返回并重新编写该部分以使用规范化表。

这是我的表结构

+---------+------------+------------+--------+----------+   
| news_id | news_title | news | cat_id | date |
+---------+------------+------------+--------+----------+
| 1 | title1 | blahblah |1,2,4,6 |2009-11-24|
+---------+------------+------------+--------+----------+
| 2 | new title | text 123 | 2 |2009-01-24|
+---------+------------+------------+--------+----------+
| 3 | new title3 | text 3 | 2,19,6 |2009-02-24|
+---------+------------+------------+--------+----------+

假设我想返回类别 2 的所有结果,我正在尝试使用此语句。

$query= mysql_query("SELECT id FROM `news_data` WHERE FIND_IN_SET('" . str_replace(',',"',cat_id) OR FIND_IN_SET('",$cat_id)."',cat_id)") or die(mysql_error());

这将返回新闻 ID 为 2 和 3 的结果,因为它们都以“2”开头。未选择第一个新闻 ID,因为“2”是第二个值。我知道 mysql 语句有一些简单的错误,我希望有人能够帮助我。

谢谢,布鲁克

最佳答案

只需删除 find_in_set 中数字的引号。为我工作。

" WHERE FIND_IN_SET(" . str_replace(',',",cat_id) OR FIND_IN_SET(",$cat_id).",cat_id)")

关于php - 从匹配值的逗号分隔的 mysql 行返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1987552/

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