我們在學 python 或者其他程式語言的時候都應該有學過變數這麼乙個東西,可是 sql 這種查詢語言中怎麼也有變數呢?具體有什麼用呢?
我們來看一下實際應用場景。
現在有這麼乙個表 t ,表結構如下:
order_id
time1
time2
time3
time4
time1 表示瀏覽日期,
time2 表示加購物車日期,
time3 表示下訂單日期,
time4 表示收貨日期。
這四個日期有什麼關係呢?就是都有可能不相等,也有可能都相等,還有可能部分相等。如果我們想要看這四個日期都發生在20190801這一天的訂單應該怎麼看呢?
sql**可以這麼寫:
select
order_id
from
twhere time1 = "2019-08-01"
and time2 = "2019-08-01"
and time3 = "2019-08-01"
and time4 = "2019-08-01"
那如果現在老闆又想要看一下這四個日期都發生在20190808這一天的訂單,該怎麼看呢?很簡單,直接把上面**中的日期改一下就可以了。如果老闆還想別的,也直接改**中的日期就可以,這樣是可以達到目的,但是大家有沒有想過,如果一段**中這種需要改的地方過多,而且**與**不是挨在一塊的時候,這個時候如果手動去查詢並修改的話,很有可能漏掉或改錯。
這個時候變數就該出場了,之前講過,所謂的變數就是乙個變化的量,是乙個容器,在你可能要更改的地方放乙個變數,而不是固定的值,這樣每次你要更改的時候,只需要更改變數的值就可以,其他地方的變數也會跟著一起變,省時又省力,美滋滋。
那我們先來看一下 mysql 資料庫中怎麼設定變數,以下是在 mysql 中設定變數day的幾種寫法:
set @day = "2019-08-01";
set @day := "2019-08-01";
select @day := "2019-08-01";
set @day = "2019-08-01";
select
order_id
from
twhere time1 = @day
and time2 = @day
and time3 = @day
and time4 = @day
這樣每次要什麼日期的資料,只需要改變變數day的值就可以了。
set day = "2019-08-01";
select
order_id
from
twhere time1 = $
and time2 = $
and time3 = $
and time4 = $
以上就是關於 mysql 和 hql 這兩種資料庫中變數的使用方法,變數的用法很常見,也確實很有用,大家一定要熟練掌握。
你還可以看:
sql 的執行順序是怎樣的?
sql 實現資料透視表功能
講講你不知道的視窗函式
講講 group by 的plus版
介紹一下 information_schema 庫
關於 group 的另乙個函式
內連線的兩種方式
sql 中 table變數的使用
sql server 2000 新增了table型資料 table型資料不能用來定義列的型別,只能用作t sql變數或者作為自定義函式的返回值。sql server 2000支援兩種型別的函式 內建函式和使用者定義函式。內建函式只允許t sql 語句呼叫而不能更改使用。使用者定義函式可以根據需要定義...
sql 中 table變數的使用
sql server 2000 新增了table型資料 table型資料不能用來定義列的型別,只能用作t sql變數或者作為自定義函式的返回值。sql server 2000支援兩種型別的函式 內建函式和使用者定義函式。內建函式只允許t sql 語句呼叫而不能更改使用。使用者定義函式可以根據需要定義...
PHP中sql語句如何使用變數
先講下單引號和雙引號的問題 單引號 php會把它裡面的內容當成字串來處理。雙引號 php會根據裡面的值來處理。比如裡面有變數 那麼變數的值就會把變數替換。例子 a hello word echo a echo a 這兩個輸出的結果是不一樣的 第乙個輸出就是 a 第二個輸出hello word 資料庫...