日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vs简易计算机等于号代码,等于(=)vs.

發布時間:2024/8/23 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs简易计算机等于号代码,等于(=)vs. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不同算子

LIKE和=是不同的操作者。這里的大多數答案都集中在通配符支持上,這并不是這些操作符之間唯一的區別!

=是對數字和字符串進行操作的比較運算符。比較字符串時,比較運算符將整串.

LIKE比較的字符串運算符。逐字逐句.

讓事情變得更復雜的是,兩個操作符都使用了校對這對比較的結果有重要的影響。

激勵實例

讓我們首先確定一個例子,其中這些操作符產生明顯不同的結果。請允許我引用MySQL手冊:根據SQL標準,類似于在每個字符的基礎上執行匹配,因此它可以產生與=比較操作符不同的結果:

mysql> SELECT '?' LIKE 'ae' COLLATE latin1_german2_ci;

+-----------------------------------------+

| '?' LIKE 'ae' COLLATE latin1_german2_ci |

+-----------------------------------------+

|? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0 |

+-----------------------------------------+

mysql> SELECT '?' = 'ae' COLLATE latin1_german2_ci;

+--------------------------------------+

| '?' = 'ae' COLLATE latin1_german2_ci |

+--------------------------------------+

|? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 |

+--------------------------------------+

請注意,MySQL手冊的這一頁名為字符串比較函數,和=沒有討論,這意味著=不是嚴格意義上的字符串比較函數。

如何=工作?

這個SQL標準§8.2描述如何=比較字符串:兩個字符串的比較如下:

(A)如果X的字符長度不等于Y字符的長度,則為比較起見,將較短的字符串有效地替換為其自身的副本,該副本已通過在一個或多個PAD字符的右側級聯擴展到較長字符串的長度,其中基于CS選擇PAD字符。如果CS有no pad屬性,那么pad字符是一個與實現相關的字符,它不同于X和Y字符集中任何比CS下的任何字符串都要小的字符。否則,襯墊字符是。

(B)用比較序列CS給出了X和Y的比較結果。

c)根據排序順序的不同,即使兩個字符串的長度不同或包含不同的字符序列,它們也可以比較為相等。當操作MAX、MIN、DISTISTION、對分組列的引用以及UNION(除了)和IntersectOperator引用字符串時,這些操作從一組相同值中選擇的特定值與實現有關。

(強調后加)

這是什么意思?這意味著當比較字符串時,=運算符只是當前排序規則的一個薄包裝器。排序規則是具有比較字符串的各種規則的庫。這里有一個例子MySQL的二進制排序:static?int?my_strnncoll_binary(const?CHARSET_INFO?*cs?__attribute__((unused)),

const?uchar?*s,?size_t?slen,

const?uchar?*t,?size_t?tlen,

my_bool?t_is_prefix){

size_t?len=?MY_MIN(slen,tlen);

int?cmp=?memcmp(s,t,len);

return?cmp???cmp?:?(int)((t_is_prefix???len?:?slen)?-?tlen);}

這種特殊的排序規則碰巧是逐字節比較的(這就是為什么它被稱為“二進制”-它沒有賦予字符串任何特殊的意義)。其他排序可能提供更高級的比較。

例如,這里有一個UTF-8校對這支持不區分大小寫的比較。代碼太長,無法粘貼到這里,但請轉到該鏈接并閱讀my_strnncollsp_utf8mb4()..這種排序規則可以一次處理多個字節,并且可以應用各種轉換(例如不區分大小寫的比較)。這個=運算符是從變化無常的校對中完全抽象出來的。

如何LIKE工作?

這個SQL標準§8.5描述如何LIKE比較字符串:

M LIKE P

如果存在將M劃分為子字符串的情況,則為真:

(I)M的子串是M的0或多個連續s的序列,而M的每個都是一個子字符串的一部分。

(Ii)如果P的第一個子字符串說明符是任意字符說明符,則M的第一個子字符串是任意一個。

如果P的第一個子字符串說明符是任意的字符串說明符,那么M的第一個子字符串就是0或更多s的任意序列。

(Iv)如果P的第一個子字符串說明符既不是任意字符說明符,也不是任意字符串說明符,則根據的排序序列,M的第I子字符串等于該子字符串說明符,而不將字符附加到M中,并且與該子字符串說明符具有相同的長度。

(V)M的子串數等于P的子串說明符的個數。

(強調后加)

這句話很冗長,所以讓我們把它分解一下吧。第二項和第三項指通配符_和%分別。如果P不包含任何通配符,則只有第四項適用。這就是“任擇議定書”提出的令人感興趣的情況。

在本例中,它比較每個“子字符串”(單個字符)M中的每個子字符串P使用當前排序規則。

結論

底線是當比較字符串時,=比較整個字符串LIKE每次比較一個字符。這兩個比較都使用當前排序規則。這種差異在某些情況下會導致不同的結果,正如本文的第一個例子所證明的那樣。

你應該用哪一種?沒有人能告訴你-你需要用正確的用例。不要過早地通過切換比較操作符來優化。

總結

以上是生活随笔為你收集整理的vs简易计算机等于号代码,等于(=)vs.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。