gpt4 book ai didi

html - mysql按复选框数组数据排序

转载 作者:行者123 更新时间:2023-11-29 00:38:12 27 4
gpt4 key购买 nike


大家好,我有一个关于 mysql 查询的快速问题。

我正在尝试进行选择,但我不确定它是否可以完成 - 或者我是否做对了。

我有一个表,其中包含一个名为 ListeningMethod 的字段,其中包含以逗号分隔的数组值中的值,这些值是从 html 复选框插入的。有 5 个可能的条目,该字段可以包含所有复选框值,也可以不包含任何复选框值。

示例数据类似于:

NOLISTEN,RADIO,INTERNET,SATELLITE,MOBILE

我想做的是对数据进行排序,但按计数进行。所以,如果“RADIO”出现 10 次,“MOBILE”出现 5 次,“SATELLITE”出现 3 次,间隔超过 10 条记录,然后搜索 100 条记录,它应该能够显示和排序这些提到的结果,“顺序by”设置为顶部最常见的收听方法。

我试了一下,但不太顺利。

有什么想法吗?谢谢。

SELECT 
ListeningMethod,
ListeningMethod REGEXP ("NOLISTEN") as ViewNOLISTEN,
ListeningMethod REGEXP ("RADIO") as ViewRADIO,
ListeningMethod REGEXP ("INTERNET") as ViewINTERNET,
ListeningMethod REGEXP ("SATELLITE") as ViewSATELLITE,
ListeningMethod REGEXP ("MOBILE") as ViewMOBILE
FROM VAT

我尝试添加更多,例如“COUNT(ViewRadio) CountRadio”,但它说该列不存在,所以我有点迷路。

示例插入语句:

INSERT INTO `VAT` (`ListeningMethod`) VALUES ('NOLISTEN,RADIO,INTERNET,MOBILE');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('INTERNET');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('NOLISTEN');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('INTERNET');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('INTERNET');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('RADIO');
INSERT INTO `VAT` (`ListeningMethod`) VALUES ('MOBILE');
>

最佳答案

您可以按照 Barmar 在评论中的建议使用分隔表,其他(不)明智的是,您可以使用 union 创建一个临时表,如下所示:(如果您没有问题联合子查询):

SELECT * FROM
(
SELECT "NOLISTEN" AS "ListeningMethod", COUNT(ListeningMethod) as "AMOUNT" FROM VAT WHERE ListeningMethod LIKE "%NOLISTEN%"
UNION
SELECT "Radio" AS "ListeningMethod", COUNT(ListeningMethod) as "AMOUNT" FROM VAT WHERE ListeningMethod LIKE "%RADIO%"
UNION
SELECT "INTERNET" AS "ListeningMethod", COUNT(ListeningMethod) as "AMOUNT" FROM VAT WHERE ListeningMethod LIKE "%INTERNET%"
UNION
SELECT "SATELLITE" AS "ListeningMethod", COUNT(ListeningMethod) as "AMOUNT" FROM VAT WHERE ListeningMethod LIKE "%SATELLITE%"
UNION
SELECT "MOBILE" AS "ListeningMethod", COUNT(ListeningMethod) as "AMOUNT" FROM VAT WHERE ListeningMethod LIKE "%MOBILE%"
) AS VAT2 ORDER BY AMOUNT DESC;

关于html - mysql按复选框数组数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393958/

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