MySql記錄之別名 博主最近踩得乙個坑

2021-09-27 10:03:55 字數 1290 閱讀 3137

說實話博主在mysql方面的基礎和積累是比較差的,最近在寫業務sql的時候就踩到了乙個坑,雖說只是個小坑但也折騰了我幾小時才爬出來。

相信很多小夥伴在寫sql語句的時候都會碰到給字段起別名的時候,在進行多表查詢時,如果有兩張表的字段是一樣的而你又得把這兩個欄位全查出來,這時你就需要給這兩個欄位起別名了,又或者你覺得這個字段不夠明確也得起別名,但起別名的時候千萬注意下面的這個問題。

比如你有一張使用者資訊表tb_user_info,表中有三個字段 id、name、age

這時你想查出年齡大於18歲的使用者,於是有了以下sql語句

select

id,`name` username,

age userage

from

tb_user_info

where

userage > 18

這時各位小夥伴有沒有看出問題啊–_--!

沒錯,就是別名問題,博主的標題就寫有了

但你得知道錯在**?,又是怎麼錯的?,又怎麼修改呢?

如果這些都不知道那說明你跟博主一樣,進步空間很大啊!

如果執行以上語句,現實會給你當頭一棒

unknown column 『username』 in 『where clause』???為什麼?我在那裡?我是誰?

這個錯誤的大概意思是 在where的username列是未知的

這是因為取了別名的字段不能在where裡面當做當初條件,在同一級裡別名是不識別的

那怎麼辦?

有的小夥伴可能會把別名去掉,心想那我不取別名不就行了,但現實是有些情況是必須要取別名的,就比如博主說的多表查詢情況

問題又來了那又怎麼辦呢?

其實很簡單,同一級不識別那我再套一級不就行了

select

* from

( select id, `name` username, age userage from tb_user_info ) t

where

userage >

18

執行

美滋滋!-_-

不知道你的問題解決了麼?

個人博主如何打造乙個人氣部落格

擁有乙個部落格不管是做什麼都有一定的誠信。偏偏很多人認為部落格無法實現 應有的東西。很多時候部落格被用作推廣的手段,對此,筆者通過瀏覽網路上的一些部落格發現,有與眾不同的地方,即使是用來推廣的,那麼也應該做好相關的工作,不能成功便成仁嘛,所以今天筆者就說說如何打造乙個人氣部落格所需的基本因素。部落格...

記錄乙個MySQL的問題

昨天做asp.net mvc程式,用mysql.data.entity.ef6做資料連線。程式都是正常的,但就是提交資料的時候總是提示 specified key was too long max key length is 767 bytes異常。搞了好久也不知道啥原因,網上查的方法也通通不好使。...

mysql共享主鍵 SQL,兩個表,乙個共享主鍵

我想要有兩個表,所以我可以將舊記錄移動到第二個表,所以我保持主表小,但仍然希望能夠鏈結到兩個表使用乙個int首要的關鍵。我已經簡化了這個例子,從我真正的 中得到了什麼 我保留了一些會話,並且希望將過期會話移動到expired sessions表中,但我也將會話鏈結到日誌表,如login attemp...