gpt4 book ai didi

php - SQL优化查询

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:19 25 4
gpt4 key购买 nike

我有一个包含以下记录的表:

    ID | Username | Selected |
----------------------------
1 | JamesC | 1 |
2 | MikeF | 0 |
3 | JamesC | 0 |

我希望只有 1 行用户名相同的 Selected 为真。例如,当我将 ID = 3 设置为 Selected = true 时,我希望将 ID =1 设置为 Selected = false 以及具有相同用户名的任何其他 ID。

现在我正在做这个,

//set all to 0
update table set selected = 0 where username = '$username'

//set unique row to true
update table set selected = 1 where username = '$username' and ID = '$ID';

有没有更好更简洁的方法达到同样的效果?

最佳答案

正如所说 - 不是很好的数据库结构,最好有具有唯一名称和所选项目 ID 的表,无论如何,您可以使用这个单一查询:

update table set selected=IF(id = '$ID', 1, 0) where username = '$username';

另外,尝试一个可能更快的变体(通过解释测试两者):

update table set selected=IF(id <> '$ID', 0, 1) where username = '$username';

关于php - SQL优化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388459/

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