午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL基礎(chǔ)教程11 —— 函數(shù)之Cast函數(shù)和操作符

瀏覽:191日期:2023-10-17 17:20:33
BINARY

BINARY操作符將后面的字符串拋給一個(gè)二進(jìn)制字符串。這是一種簡單的方式來促使逐字節(jié)而不是逐字符的進(jìn)行列比較。這使得比較區(qū)分大小寫,即使該列不被定義為BINARY或BLOB。BINARY也會(huì)產(chǎn)生結(jié)尾空白,從而更加顯眼。

mysql>SELECT ’a’ = ’A’;

-> 1

mysql>SELECT BINARY ’a’ = ’A’;

-> 0

mysql>SELECT ’a’ = ’a ’;

-> 1

mysql>SELECT BINARY ’a’ = ’a ’;

-> 0

BINARY影響整個(gè)比較;它可以在任何操作數(shù)前被給定,而產(chǎn)生相同的結(jié)果。

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

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

假如你想要將一個(gè)BLOB值或其它二進(jìn)制字符串進(jìn)行區(qū)分大小寫的比較,你可利用二進(jìn)制字符串沒有字符集這一事實(shí)實(shí)現(xiàn)這個(gè)目的,這樣就不會(huì)有文書夾的概念。為執(zhí)行一個(gè)區(qū)分大小寫的比較,可使用 CONVERT()函數(shù)將一個(gè)字符串值轉(zhuǎn)化為一個(gè)不區(qū)分大小寫的字符集。其結(jié)果為一個(gè)非二進(jìn)制字符串,因此LIKE操作也不會(huì)區(qū)分大小寫:

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

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

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

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

CAST()和CONVERT()函數(shù)可用來獲取一個(gè)類型的值,并產(chǎn)生另一個(gè)類型的值。

這個(gè)類型可以是以下值其中的 一個(gè):

BINARY[(N)]CHAR[(N)]DATEDATETIMEDECIMALSIGNED [INTEGER]TIMEUNSIGNED [INTEGER]

BINARY產(chǎn)生一個(gè)二進(jìn)制字符串。關(guān)于它怎樣影響比較結(jié)果的說明見本章中BINARY操作符項(xiàng)。

假如給定了隨意長度N,則BINARY[N]使cast使用該參數(shù)的不多于N個(gè)字節(jié)。同樣的,CHAR[N]會(huì)使cast使用該參數(shù)的不多于N個(gè)字符。

CAST() and CONVERT(... USING ...)是標(biāo)準(zhǔn)SQL語法。CONVERT()的非USING格式是ofis ODBC語法。

帶有USING的CONVERT()被用來在不同的字符集之間轉(zhuǎn)化數(shù)據(jù)。在MySQL中,自動(dòng)譯碼名和相應(yīng)的字符集名稱相同。例如。 這個(gè)語句將服務(wù)器的默認(rèn)字符集中的字符串’abc’轉(zhuǎn)化為utf8字符集中相應(yīng)的字符串:

SELECT CONVERT(’abc’ USING utf8);

當(dāng)你想要在一個(gè)CREATE ... SELECT語句中創(chuàng)建一個(gè)特殊類型的列,則cast函數(shù)會(huì)很有用:

CREATE TABLE new_table SELECT CAST(’2000-01-01’ AS DATE);

該函數(shù)也用于ENUM列按詞法順序的排序。通常ENUM列的排序在使用內(nèi)部數(shù)值時(shí)發(fā)生。將這些值按照詞法順序派給CHAR結(jié)果:

SELECTenum_colFROMtbl_nameORDER BY CAST(enum_colAS CHAR);

CAST(strAS BINARY)和BINARYstr相同。CAST(exprAS CHAR)將表達(dá)式視為一個(gè)帶有默認(rèn)字符集的字符串。

若用于一個(gè)諸如CONCAT(’Date: ’,CAST(NOW() AS DATE))這樣的比較復(fù)雜的表達(dá)式的一部分,CAST()也會(huì)改變結(jié)果。

你不應(yīng)在不同的格式中使用CAST()來析取數(shù)據(jù),但可以使用諸如LEFT()或EXTRACT()的樣的字符串函數(shù)來代替。請參見“日期和時(shí)間函數(shù)”。

若要在數(shù)值語境中將一個(gè)字符串派給一個(gè)數(shù)值,通常情況下,除了將字符串值作為數(shù)字使用外,你不需要做任何事:

mysql>SELECT 1+’1’;

-> 2

若要在一個(gè)字符串語境中使用一個(gè)數(shù)字,該數(shù)字會(huì)被自動(dòng)轉(zhuǎn)化為一個(gè)BINARY字符串。

mysql>SELECT CONCAT(’hello you ’,2);

-> ’hello you 2’

MySQL支持帶符號(hào)和無符號(hào)的64比特值的運(yùn)算。若你正在使用數(shù)字操作符 (如+)而其中一個(gè)操作數(shù)為無符號(hào)整數(shù),則結(jié)果為無符號(hào)。可使用SIGNED和UNSIGNED cast操作符來覆蓋它。將運(yùn)算分別派給帶符號(hào)或無符號(hào)64比特整數(shù)。

mysql>SELECT CAST(1-2 AS UNSIGNED)

-> 18446744073709551615

mysql>SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);

-> -1

注意,假如任意一個(gè)操作數(shù)為一個(gè)浮點(diǎn)值,則結(jié)果為一個(gè)浮點(diǎn)值, 且不會(huì)受到上述規(guī)則影響(關(guān)于這一點(diǎn), DECIMAL列值被視為浮點(diǎn)值)。

mysql>SELECT CAST(1 AS UNSIGNED) - 2.0;

-> -1.0

若你在一個(gè)算術(shù)運(yùn)算中使用了一個(gè)字符串,它會(huì)被轉(zhuǎn)化為一個(gè)浮點(diǎn)數(shù)。

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 欧美一区二区视频在线观看 | 欧美一区亚洲一区 | 天天射一射 | 国产主播一区二区 | 国产二区视频在线观看 | 看片在线观看 | 黄色网zhan | 久久久久久久免费 | 欧美成人天堂 | 中午字幕在线观看 | 亚洲免费a| 特黄特色大片免费播放器使用方法 | 综合成人在线 | 天堂va在线| 欧美日韩一区二区不卡 | 四虎永久在线精品 | 中文字幕avav | 手机毛片在线观看 | 日韩天堂网 | 国产精品人成在线观看免费 | 美女av网站 | 国产欧美精品一区二区三区 | 在线免费观看日韩av | 国产5页 | 国产精品久久久久久久久久久久久久久久 | 欧美 日韩 综合 | 超碰99在线观看 | 国产福利视频在线观看 | 午夜精品久久久久久久久久久久 | 欧美成人免费在线视频 | 亚洲精品在线观看网站 | 成人免费公开视频 | 浴室偷拍美女洗澡456在线 | 日日日夜夜操 | 欧美日韩精品免费 | av在线精品 | 国产成人亚洲综合a∨婷婷 91亚洲精品在线观看 | a级黄色录像| 欧美日韩综合视频 | 亚洲国产综合在线 | 四虎永久在线观看 |