gpt4 book ai didi

php - 我可以根据结果数将我的 MySQL 查询重构为一个查询吗?

转载 作者:行者123 更新时间:2023-11-29 04:14:43 26 4
gpt4 key购买 nike

我有一个表 y 其中有两列 ab

条目是:

a   b

1 2

1 3

1 4

0 5

0 2

0 4

如果我在 a 列中搜索 1,我想得到 2,3,4,如果我在 a 列中搜索,我想得到 5,2,4。

因此,如果我在 A 中搜索 A 中的内容,(1) 我会得到这些行,如果没有条目 A 具有给定值,请给我“默认值”(a = '0')

这是我知道的方法:

$r = mysql_query('SELECT `b` FROM `y` WHERE `a` = \'1\';');
//This gives desired results, 3 rows

$r = mysql_query('SELECT `b` FROM `y` WHERE `a` = \'2\';');
//This does not give desired results yet.
//Get the number of rows, and then get the 'defaults'
if(mysql_num_rows($r) === 0) $r = mysql_query('SELECT `b` FROM `y` WHERE `a` = 0;');

那么,现在已经充分解释了,我如何在一个查询中执行此操作,性能问题又如何呢?

最常用的部分是第三个查询,因为如果您偏离默认值,a 中只会有数字的值。

最佳答案

我想我有:

SELECT b FROM y where a=if(@value IN (select a from y group by a),@value,0);

它检查@value 是否存在于表中,如果不存在,则使用 0 作为默认值。@value 也可以是一个 php 值。

希望对您有所帮助:)

关于php - 我可以根据结果数将我的 MySQL 查询重构为一个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/108281/

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