欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于mysql中string和number的轉(zhuǎn)換問題

 更新時間:2022年06月13日 17:05:08   作者:丸丸醬  
這篇文章主要介紹了關(guān)于mysql中string和number的轉(zhuǎn)換問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mysql中string和number的轉(zhuǎn)換

今天無意中發(fā)現(xiàn)一個很奇怪的現(xiàn)象,在寫sql語句的時候,想篩選列值為空字符串的記錄,結(jié)果把列值為0的記錄也一起篩選出來了

總結(jié)原因如下

當(dāng)非同類型比較,等號兩邊分別為number和string之一時候,mysql會把string類型和number類型進(jìn)行轉(zhuǎn)換:

(1)數(shù)值型字符串

如''、'string'、'abc'等,會轉(zhuǎn)換成0

eg:

select '' = 0 from dual; ? ---結(jié)果:1
select 'a' = 0 from dual; ? ---結(jié)果:1

(2)number和string拼接字符串

如'123string'、'0123string'等,會取頭部類型進(jìn)行轉(zhuǎn)換

eg:

select '123abc' = 0 from dual; ? ---結(jié)果:0
select '123abc' = 123 from dual; ? ---結(jié)果:1
select '0123abc' = 123 from dual; ? ---結(jié)果:1
select '123abc' + '23def' from dual; ? ---結(jié)果:146

(3)string和number拼接字符串

如'string123'、'string0123'等,會取頭部類型進(jìn)行轉(zhuǎn)換

eg:

select 'abc123' = 0 from dual; ? ---結(jié)果:1
select 'abc123' = 123 from dual; ? ---結(jié)果:0
select 'abc123' + 'def45' from dual; ? ---結(jié)果:0

(4)數(shù)值型字符串則會轉(zhuǎn)換成相應(yīng)的number

如'123'->123、'023'->23等

eg:

select '123' = 0 from dual; ? ---結(jié)果:0
select '123' = 123 from dual; ? ---結(jié)果:1
select '0123' = 123 from dual; ? ---結(jié)果:1

(5)number則直接轉(zhuǎn)換成對應(yīng)的string

eg:

select 123 = '123' from dual; ? ---結(jié)果:1

所以針對我遇到的問題,mysql把''當(dāng)成字符串處理,轉(zhuǎn)換成了0,0=0,所以把列值為0的記錄也一并篩選了出來

+號的處理方式同理:

如果+號兩邊類型不一致,則把string轉(zhuǎn)換成number處理

select '0string' + 0 = 'string' from dual; ? ---結(jié)果:1 ? '0string' + 0 -> 0 + 0 = 0,0和'string'進(jìn)行比較
select 'string' = 'string' + 0 from dual; ? ---結(jié)果:1 ? 'string' + 0 -> 0 + 0 = 0,'string'和0進(jìn)行比較
select 'string' + 0 = 'string' + 0 from dual; ? ---結(jié)果:1 ? 'string' + 0 -> 0 + 0 ,0和0進(jìn)行比較
select 'string' + 0 = 'string' + 1 from dual; ? ---結(jié)果:0 ? 'string' + 0 -> 0 + 0 ,'string' + 1 -> 0 + 1,0和1進(jìn)行比較

參考鏈接:http://stackoverflow.com/questions/22080382/mysql-why-comparing-a-string-to-0-gives-true

附贈mysql文檔說明:https://dev.mysql.com/doc/refman/5.7/en/type-conversion.html

mysql中hex、varchar、number相互轉(zhuǎn)換

hex(‘20')= 14
select HEX(20) from DUAL – result: 14

然后這串?dāng)?shù)字就能變?yōu)?6進(jìn)制字符串,只需要加上0x的前綴!

  • UNHEX(‘14’) – 每對十六進(jìn)制數(shù)字轉(zhuǎn)化為一個字符。
  • UNHEX(‘14’),對應(yīng) SI, 該字符無法正確輸出

但是ORDER BY UNHEX(‘14’) 是可以的。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql limit 優(yōu)化,百萬至千萬級快速分頁 復(fù)合索引的引用并應(yīng)用于輕量級框架

    Mysql limit 優(yōu)化,百萬至千萬級快速分頁 復(fù)合索引的引用并應(yīng)用于輕量級框架

    MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個問題還是從前天開始。有過痛苦有過絕望,到現(xiàn)在充滿信心!
    2011-06-06
  • MySQL 日期時間加減的示例代碼

    MySQL 日期時間加減的示例代碼

    本文主要介紹了MySQL日期時間加減,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • MySql如何去除字符串前綴,兩邊,后綴

    MySql如何去除字符串前綴,兩邊,后綴

    這篇文章主要介紹了MySql如何去除字符串前綴,兩邊,后綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解MySQL自增主鍵的實(shí)現(xiàn)

    詳解MySQL自增主鍵的實(shí)現(xiàn)

    現(xiàn)在大部分的軟件開發(fā)都離不開數(shù)據(jù)庫。而mysql也是經(jīng)常會用到的一個數(shù)據(jù)庫。mysql數(shù)據(jù)庫中有一個主鍵生成規(guī)則,就是自增。也是我們經(jīng)常會用到的。本文就來介紹一下
    2021-09-09
  • MySQL 時間類型的選擇

    MySQL 時間類型的選擇

    MySQL 有多種類型存儲日期和時間,例如 YEAR 和 DATE。MySQL 的時間類型存儲的精確度能到秒(MariaDB 可以到毫秒級)。但是,也可以通過時間計算達(dá)到毫秒級。時間類型的選擇沒有最佳,而是取決于業(yè)務(wù)需要如何處理時間的存儲。
    2021-06-06
  • 服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件

    服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件

    這篇文章主要介紹了服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL從MyISAM轉(zhuǎn)換成InnoDB錯誤與常用解決辦法

    MySQL從MyISAM轉(zhuǎn)換成InnoDB錯誤與常用解決辦法

    由于一些程序的要求,需要MyISAM數(shù)據(jù)引擎或InnoDB,下面是具體的解決方法,經(jīng)測試偶爾會出現(xiàn)一些問題。
    2011-05-05
  • DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    這篇文章主要給大家介紹了關(guān)于DB為何大量出現(xiàn)select @@session.tx_read_only 的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • MySQL?8.0.29?安裝配置方法圖文教程(windows?zip版)

    MySQL?8.0.29?安裝配置方法圖文教程(windows?zip版)

    這篇文章主要為大家詳細(xì)介紹了windows?zip版MySQL?8.0.29?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • MySQL中distinct和count(*)的使用方法比較

    MySQL中distinct和count(*)的使用方法比較

    這篇文章主要針對MySQL中distinct和count(*)的使用方法比較,對兩者之間的使用方法、效率進(jìn)行了詳細(xì)分析,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評論