gpt4 book ai didi

mysql - := operator mean in mysql? 是什么

转载 作者:IT老高 更新时间:2023-10-29 00:06:19 27 4
gpt4 key购买 nike

我有一个 mysql 表(scho_idschool_nameschool_views)。

我正在寻找一个 mysql 查询以根据 school_views 获取学校的 rank

我在 stackoverflow 上找到了这个解决方案。

SET @points := -1, @num := 0;
SELECT scho_id
, school_views
, @num := if(@points = school_views, @num, @num + 1) as school_rank
, @points := school_info.school_views as dummy
FROM school_info
ORDER BY school_views desc, scho_id asc;

这解决了我的问题,但我注意到此查询中有一个新的运算符 :=。我很想知道这个运算符的含义和用途。

最佳答案

在MySQL中,:=是一个赋值运算符:

SELECT @foo := 'bar';    // variable 'foo' now has value 'bar'
return value: 'bar'

= 是相等性测试:

SELECT @foo = 'hi mom'; // does variable 'foo' have the value 'hi mom';
return value: false ('bar' == 'hi mom' -> false)

请注意,您可以使用 set 查询进行相等性测试和赋值:

SET @foo = 'bar' = 'baz';

这将导致 @foo 被赋值为 false,即 'bar' = 'baz' 的 bool 结果。它执行如下:

SET @foo = ('bar' = 'baz');
SET @foo = false;

关于mysql - := operator mean in mysql? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379659/

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