Mysql中在where條件中對int欄位進行處理

2021-09-25 22:21:34 字數 344 閱讀 5100

今天操作mysql資料庫,進行select的時候發現,mysql可以直接對int欄位傳string型別值。

如表student,欄位id(int),可以select * from student where id='12abc'。發現可以查到id=12的記錄。

原理:mysql會將傳入的string(要賦值給int欄位的)從左到右的第乙個非數值開始,將後面的字串轉成0,在和數值型別相加,如上述例子就是「12abc」->12+0=12,也就是等效於select * from student where id=12。

insert、select、update、delete都可以。

join中的條件在on還是在where中?

left join 左連線,返回左表中所有的記錄以及右表中連線字段相等的記錄。right join 右連線,返回右表中所有的記錄以及左表中連線字段相等的記錄。inner join 內連線,又叫等值連線,只返回兩個表中連線字段相等的行。full join 外連線,返回兩個表中的行 left join ...

PHP中MYSQL語句WHERE條件裡面使用變數

一般來說很多人喜歡這樣寫 資料庫查詢錯誤例子 username admin sql select from user where username username 但是這樣寫明顯在sql語句中是不行的,在sql語句中使用變數有專門的語法 單引號和大括號組合。正確的寫法應該是 資料庫查詢正確例子 變...

mysql中Where條件中欄位順序的重要性

在用mysql查詢資料庫的時候,連線了很多個用,發現非常慢。例如 select where p.languages id 1 and m.languages id 1 and c.languages id 1 and t.languages id 1 and p.products id in 472...