国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL基礎教程11 —— 函數之Cast函數和操作符

瀏覽:18日期:2023-10-17 17:20:33
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影響整個比較;它可以在任何操作數前被給定,而產生相同的結果。

BINARYstr是CAST(strAS BINARY)的縮略形式。

注意,在一些語境中,假如你將一個編入索引的列派給BINARY, MySQL將不能有效使用這個索引。

假如你想要將一個BLOB值或其它二進制字符串進行區分大小寫的比較,你可利用二進制字符串沒有字符集這一事實實現這個目的,這樣就不會有文書夾的概念。為執行一個區分大小寫的比較,可使用 CONVERT()函數將一個字符串值轉化為一個不區分大小寫的字符集。其結果為一個非二進制字符串,因此LIKE操作也不會區分大小寫:

SELECT ’A’ LIKE CONVERT(blob_colUSING latin1) FROMtbl_name;

若要使用一個不同的字符集,替換其在上述語句中的latin1名。

CONVERT()一般可用于比較出現在不同字符集中的字符串。

CAST(exprAStype), CONVERT(expr,type) , CONVERT(exprUSINGtranscoding_name)

CAST()和CONVERT()函數可用來獲取一個類型的值,并產生另一個類型的值。

這個類型可以是以下值其中的 一個:

BINARY[(N)]CHAR[(N)]DATEDATETIMEDECIMALSIGNED [INTEGER]TIMEUNSIGNED [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結果:

SELECTenum_colFROMtbl_nameORDER BY CAST(enum_colAS CHAR);

CAST(strAS BINARY)和BINARYstr相同。CAST(exprAS 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 數據庫
相關文章:
主站蜘蛛池模板: 免费毛片a | 一级毛片无毒不卡直接观看 | 永久免费看毛片 | 国产精品久久不卡日韩美女 | 日韩成人在线视频 | 国产成人亚洲精品 | 一本久久综合 | 美女做爰视频在线观看免费 | 爱视频福利广场 | 国产欧美日韩在线视频 | 亚洲国产精品一区二区第四页 | 日本一级爽毛片在线看 | 成年女人免费毛片视频永久 | 91久久亚洲国产成人精品性色 | www.久久视频 | 国产成人在线综合 | 国产高清国产专区国产精品 | 波多野结衣一级片 | 日韩欧一级毛片在线播无遮挡 | 日韩中文字幕在线观看视频 | 美女视频黄的免费看网站 | 美女被免费网站在线视频软件 | 美女黄频免费看 | 亚洲视频在线观看网址 | 久久国产精品久久 | 欧美三区在线观看 | 99视频九九精品视频在线观看 | 美女张开大腿让男人桶 | 欧美午夜不卡在线观看最新 | 国产精品成人观看视频国产 | 亚洲一级香蕉视频 | 香港日本韩国三级网站 | 欧美手机在线视频 | 女人张开腿给男人桶爽免费 | 欧美一级毛片大片免费播放 | 亚洲毛片免费看 | 精品国语_高清国语自产 | 国产亚洲一欧美一区二区三区 | 亚洲国产成人九九综合 | 久久偷看各类wc女厕 | 欧美高清视频手机在在线 |