gpt4 book ai didi

mysql where 子句根据设备显示横幅

转载 作者:行者123 更新时间:2023-11-29 08:04:44 25 4
gpt4 key购买 nike

我有一个 mysql 表“banners”,其中有一列“device”

如果横幅适用于桌面设备,则“设备”列为 NULL;如果横幅适用于 iphone/ipad 设备,则“设备”列为“ios”。

现在我正在编写一个脚本来根据设备显示横幅..

例如,如果有人使用桌面访问该网站,则查询为:

SELECT id FROM banners WHERE 1 ORDER BY RAND() LIMIT 1

如果我使用 iPhone 访问该网站,查询会发生变化:

SELECT id FROM banners WHERE device LIKE '%ios%' ORDER BY RAND() LIMIT 1

一切正常,除了如果我有 0 个 IOS 横幅,我会显示一个桌面横幅而不是任何内容,但我不知道如何更改查询..

例如,如果我添加一个 OR 子句,IOS 的优先级仍然保留???

SELECT id FROM banners WHERE ( device LIKE '%ios%' OR device ='') ORDER BY RAND() LIMIT 1

最佳答案

 select id from banners A ,(select count(*) AS cnt  from banners  where device LIKE '%ios%') B

WHERE

device LIKE (case when B. cnt = 0 then '%%' else '%ios%' end)

ORDER BY RAND() LIMIT 1

关于mysql where 子句根据设备显示横幅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22958817/

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