BINARY
BINARY運算子將後面的字串拋給一個二進位字串。這是一種簡單的方式來促使逐字節而不是逐字的進行列比較。這使得比較區分大小寫,即使該列不被定義為 BINARY或 BLOB。 BINARY也會產生結尾空白,更加顯眼。
mysql> SELECT 'a' = 'A'; -> 1 mysql> SELECT BINARY 'a' = 'A'; -> 0 mysql> SELECT 'a' = 'a '; -> 1 mysql> SELECT BINARY 'a' = 'a '; -> 0
BINARY影響整個比較;它可以在任何操作數前被給定,而產生相同的結果。
BINARY str 是CAST(str AS BINARY)的縮寫形式。
注意,在某些語境中,假如你將一個編入索引的列派給BINARY, MySQL 將不能有效使用這個索引。
假如你想要將一個 BLOB值或其它二進製字符串進行區分大小寫的比較,你可利用二進製字符串沒有字符集這一事實實現這個目的,這樣就不會有文書夾的概念。為執行一個區分大小寫的比較,可使用 CONVERT()函數將一個字串值轉換為一個不區分大小寫的字元集。結果為非二進位字串,因此 LIKE 操作也不會區分大小寫:
SELECT 'A' LIKE CONVERT(blob_col USING latin1) FROM tbl_name;
若要使用一個不同的字元集, 替換其在上述語句中的latin1名。
CONVERT()一般可用來比較出現在不同字元集中的字串。
CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
CAST() 和CONVERT() 函數可用於取得一個類型的值,並產生另一個類型的值。
這個類型 可以是以下值其中的一個:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECUECM5SFECIM[ INTEGER]
BINARY 產生一個二進位字串。關於它怎樣影響比較結果的說明請參閱本章 BINARY操作符項。
假如給定了隨意長度N,則 BINARY[N] 使 cast使用該參數的不多於 N 個位元組。同樣的, CHAR[N]會使 cast 使用該參數的不多於N 個字元。
CAST() and CONVERT(... USING ...) 是標準 SQL語法。 CONVERT()的非USING 格式是ofis ODBC語法。
帶有USING的CONVERT() 被用來在不同的字元集之間轉換資料。在 MySQL中, 自動譯碼名和對應的字符集名稱相同。例如。 這個語句將伺服器的預設字元集中的字串 'abc'轉換為utf8字元集中對應的字串:
SELECT CONVERT('abc' USING utf8);
當你想要在一個CREATE ... SELECT 語句中建立一個特殊類型的列,則cast函數會很有用:
CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);
此函數也用於ENUM 列按詞法順序的排序。通常ENUM列的排序在使用內部數值時發生。將這些值依照詞法順序派給CHAR 結果:
SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);
CAST(str AS BINARY)和BINARY str相同。 CAST(expr AS CHAR) 將表達式視為一個帶有預設字元集的字串。
若用於一個諸如 CONCAT('Date: ',CAST(NOW() AS DATE))這樣的比較複雜的表達式的一部分,CAST()也會改變結果。
你不應在不同的格式中使用 CAST() 來析取數據,但可以使用諸如LEFT() 或 EXTRACT() 的樣的字串函數來代替。請參閱“日期和時間函數”。
若要在數值語境中將一個字串派給一個數值, 通常情況下,除了將字串值作為數字使用外,你不需要做任何事:
mysql> SELECT 1+'1'; -> 2
若要在一個字串語境中使用一個數字,該數字會自動轉換為一個BINARY 字串。
mysql> SELECT CONCAT('hello you ',2); -> 'hello you 2'
MySQL 支援帶符號和無符號的64位元值的運算。若你正在使用數字運算元 (如 +) 而其中一個運算元為無符號整數,則結果為無符號。可使用SIGNED 和UNSIGNED cast 操作符來覆寫它。將運算分別派給帶符號或無符號64位元整數。
mysql> SELECT CAST(1-2 AS UNSIGNED) -> 18446744073709551615 mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED); -> -1
注意,假如任何一個操作數為一個浮點值,則結果為一個浮點值, 且不會受到上述規則影響 (關於這一點, DECIMAL 列值被視為浮點值)。
mysql> SELECT CAST(1 AS UNSIGNED) - 2.0; -> -1.0
若你在一個算術運算中使用了一個字串,它會被轉換為一個浮點數。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版