gpt4 book ai didi

php - 根据逗号分隔值显示结果

转载 作者:行者123 更新时间:2023-11-29 03:59:37 27 4
gpt4 key购买 nike

我的表中有逗号分隔值,tbl_request 如下:

request_id   name1  price
4 12,14 99.23

从这个表中我需要根据值 name1 从另一个表中找到数据,即 12、14。我尝试了以下代码

SELECT
r.price,
(
SELECT
GROUP_CONCAT(pd.product_name)
FROM
tbl_products AS pd
WHERE
(
pd.product_id IN(GROUP_CONCAT(r.name1))
)
) as xyz
FROM
tbl_request AS r
WHERE
r.request_id = 4

我需要以逗号分隔值获取 name1 中 id 的产品名称。但是使用上面的代码我只能得到一个值。我该如何解决这个问题?

最佳答案

你有一个损坏的数据结构。以下是它不好的原因:

  • 将数字存储为字符串是不好的。
  • SQL 数据库中的一列应该有一个值。
  • SQL 对字符串操作的支持很差。
  • 应正确定义外键关系(您不能使用列表来做到这一点)。
  • 字符串操作排除了索引的使用。

修复您的数据并将值放入适当的连接表中,具有正确的类型和外键关系。

有时,我们会被其他人非常糟糕、糟糕、糟糕、糟糕、糟糕的设计决策所困。 MySQL 提供了 find_in_set() 可以帮助实现这个目的:

SELECT r.price, GROUP_CONCAT(pd.product_name) as xyz
FROM tbl_request r LEFT JOIN
tbl_products p
ON find_in_set(p.product_id, r.name1) > 0
WHERE r.request_id = 4
GROUP BY r.price;

关于php - 根据逗号分隔值显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49319664/

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