gpt4 book ai didi

php - 使用 MeekroDB 查询带限制的 MySQL 字母数字

转载 作者:行者123 更新时间:2023-11-29 12:56:22 24 4
gpt4 key购买 nike

我尝试按特定字母数字范围 1-3 和 A-B 对前 15 个匹配项进行排序,但在输出中没有得到任何结果。使用MeekroDB 。不知道如何将我这里的内容转化为他们的方法。

$results = DB::query("SELECT substr(theme, 1, 1) as Alphabet
FROM gallery ORDER BY (CASE theme
WHEN '1%' THEN 1
WHEN '2%' THEN 2
WHEN '3%' THEN 3
WHEN 'A%' THEN 4
WHEN 'B%' THEN 5
ELSE -1
END) LIMIT 15");

$x = 0
foreach ($results as $row) {
$x++;
if ($x == 1) { // first in query
$t1 = $row['theme'];
$d1 = $row['developer'];
$th1 = $row['thumb'];
$thlg1 = $row['thumb_lg'];
}
...
}

正文中的回显示例:

<img src="<?php echo($th1); ?>" data-retina="<?php echo($thlg1); ?>" alt="<?php echo($t1); ?>" />
<span><p class="hname"><?php echo($t1); ?></p>
<p class="hdev"><?php echo($d1); ?></p></span>

更新2:

$results = DB::query("SELECT substr(theme, 1, 1) as Alphabet, theme, developer, thumb, thumb_lg
FROM gallery ORDER BY (CASE
WHEN theme LIKE '1%' THEN 1
WHEN theme LIKE '2%' THEN 2
WHEN theme LIKE '3%' THEN 3
WHEN theme LIKE 'A%' THEN 4
WHEN theme LIKE 'B%' THEN 5
ELSE -1
END) LIMIT 15");

更新3:

$results = DB::query("SELECT substr(theme, 1, 1) as Alphabet, theme, developer, thumb, thumb_lg FROM gallery
ORDER BY (CASE Alphabet
WHEN '1' THEN 1
WHEN '2' THEN 2
WHEN '3' THEN 3
WHEN 'A' THEN 4
WHEN 'B' THEN 5
ELSE 6
END)
LIMIT 15");

最佳答案

ORDER BY 子句应该是:

ORDER BY CASE Alphabet
WHEN '1' THEN 1
WHEN '2' THEN 2
WHEN '3' THEN 3
WHEN 'A' THEN 4
WHEN 'B' THEN 5
ELSE 6
END, theme

您的代码正在对整个主题进行精确匹配,“1%”应该使用 LIKE 进行匹配。我的版本仅使用第一个字符,您已将其提取到 Alphabet 中。

另一种写法是:

ORDER BY IF(LOCATE(Alphabet, "123AB"), 0, 1), theme

这是有效的,因为第一个字符的顺序与正常的字典顺序相匹配。

关于php - 使用 MeekroDB 查询带限制的 MySQL 字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999897/

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