MYSQL字符串強轉(zhuǎn)的方法示例
前言
由于兩個表同一字段類型不一樣,甚至是編碼類型不一樣也會導(dǎo)致查詢不走索引,速度會很慢。
強轉(zhuǎn)
直接舉例說明:
A 表id是int 類型 B表id是 char 類型
如果要轉(zhuǎn)為int 則是signed
如果要轉(zhuǎn)為char 則是char
注意:需轉(zhuǎn)換的類型必須是left join 后表的字段,否則不走索引
因為聯(lián)表字段類型不一致,所以不走索引
select t.* from A tleft join B t1 on t.id = t1.id
第一種轉(zhuǎn)換類型
select t.* from A tleft join B t1 on t.id = cast(t1.id as signed)
第二種轉(zhuǎn)化類型
select t.* from A tleft join B t1 on t.id = convert(t1.id,signed)
a.b=f.g
但是這兩個字段b和g屬于不同的排序規(guī)則,b是utf8_general_ci,而g是utf8_unicode_ci,他兩相等sql就會報錯,于是我請教了上級,寫法是:
CONVERT (a.b USING utf8) COLLATE utf8_unicode_ci = f.g
如果這樣連表還不走索引,字段放在查詢里面轉(zhuǎn)型,例如:
select a.* from a left join (select b.*, CONVERT (a.b USING utf8) COLLATE utf8_unicode_ci = f.g from b) a on a.b = f.g
CONVERT(user_id USING utf8) COLLATE utf8_general_ci as user_id
到此這篇關(guān)于MYSQL字符串強轉(zhuǎn)的文章就介紹到這了,更多相關(guān)MYSQL字符串強轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
本篇文章是對mysql數(shù)據(jù)庫優(yōu)化進行了詳細的總結(jié)與介紹,需要的朋友參考下2013-06-06mysql表操作-約束刪除、用戶填加、授權(quán)和撤權(quán)方式
本文詳細介紹了數(shù)據(jù)庫的約束刪除、密碼策略設(shè)置、用戶管理以及權(quán)限控制的具體操作步驟,包括查看與修改表的約束條件、設(shè)置數(shù)據(jù)庫密碼的策略、增加用戶以及用戶權(quán)限的授權(quán)與撤銷等,這些操作對于數(shù)據(jù)庫管理員來說是基本且必須掌握的技能2024-09-09Keepalived+HAProxy實現(xiàn)MySQL高可用負載均衡的配置
這篇文章主要介紹了keepalived+haproxy實現(xiàn)MySQL高可用負載均衡的配置方法,通過這兩個軟件可以有效地使MySQL脫離故障及進行健康檢測,需要的朋友可以參考下2016-02-02MySQL使用LOAD_FILE()函數(shù)方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于MySQL使用LOAD_FILE()函數(shù)方法和相關(guān)知識點,需要的朋友們學(xué)習(xí)下。2019-03-03MYSQL 左連接右連接和內(nèi)連接的詳解及區(qū)別
這篇文章主要介紹了MYSQL 左連接右連接和內(nèi)連接的詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-11-11LNMP下使用命令行導(dǎo)出導(dǎo)入MySQL數(shù)據(jù)庫的方法
這篇文章主要介紹了LNMP下使用命令行導(dǎo)出導(dǎo)入MySQL數(shù)據(jù)庫的方法,需要的朋友可以參考下2016-09-09