簡體   English   中英

在mysql中:=運算符是什么意思?

[英]What does the := operator mean in mysql?

我有一個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'

while =是一個相等測試:

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' 它執行如下:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM