成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來到九壹網(wǎng)。
搜索
您的當(dāng)前位置:首頁mysql函數(shù)之Cast函數(shù)和操作符

mysql函數(shù)之Cast函數(shù)和操作符

來源:九壹網(wǎng)

BINARY

BINARY操作符將后面的字符串拋給一個二進制字符串。這是一種簡單的方式來促使逐字節(jié)而不是逐字符的進行列比較。這使得比較區(qū)分大小寫,即使該列不被定義為 BINARY或 BLOB。BINARY也會產(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影響整個比較;它可以在任何操作數(shù)前被給定,而產(chǎn)生相同的結(jié)果。

BINARY str 是CAST(str AS BINARY)的縮略形式。

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

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

SELECT 'A' LIKE CONVERT(blob_col USING latin1) FROM tbl_name;

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

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

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

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

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

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

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

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

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

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

SELECT CONVERT('abc' USING utf8);

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

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

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

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))這樣的比較復(fù)雜的表達式的一部分,CAST()也會改變結(jié)果。

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

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

mysql> SELECT 1+'1';
-> 2

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

mysql> SELECT CONCAT('hello you ',2);
-> 'hello you 2'

MySQL 支持帶符號和無符號的比特值的運算。若你正在使用數(shù)字操作符 (如 +) 而其中一個操作數(shù)為無符號整數(shù),則結(jié)果為無符號??墒褂肧IGNED 和UNSIGNED cast 操作符來覆蓋它。將運算分別派給帶符號或無符號比特整數(shù)。

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

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

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

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

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2

違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)