MYSQL字符串強(qiáng)轉(zhuǎn)的方法示例
前言
由于兩個(gè)表同一字段類型不一樣,甚至是編碼類型不一樣也會(huì)導(dǎo)致查詢不走索引,速度會(huì)很慢。
強(qiáng)轉(zhuǎn)
直接舉例說明:
A 表id是int 類型 B表id是 char 類型
如果要轉(zhuǎn)為int 則是signed
如果要轉(zhuǎn)為char 則是char
注意:需轉(zhuǎn)換的類型必須是left join 后表的字段,否則不走索引
因?yàn)槁?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
但是這兩個(gè)字段b和g屬于不同的排序規(guī)則,b是utf8_general_ci,而g是utf8_unicode_ci,他兩相等sql就會(huì)報(bào)錯(cuò),于是我請(qǐng)教了上級(jí),寫法是:
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字符串強(qiáng)轉(zhuǎn)的文章就介紹到這了,更多相關(guān)MYSQL字符串強(qiáng)轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
本篇文章是對(duì)mysql數(shù)據(jù)庫優(yōu)化進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06mysql表操作-約束刪除、用戶填加、授權(quán)和撤權(quán)方式
本文詳細(xì)介紹了數(shù)據(jù)庫的約束刪除、密碼策略設(shè)置、用戶管理以及權(quán)限控制的具體操作步驟,包括查看與修改表的約束條件、設(shè)置數(shù)據(jù)庫密碼的策略、增加用戶以及用戶權(quán)限的授權(quán)與撤銷等,這些操作對(duì)于數(shù)據(jù)庫管理員來說是基本且必須掌握的技能2024-09-09Keepalived+HAProxy實(shí)現(xiàn)MySQL高可用負(fù)載均衡的配置
這篇文章主要介紹了keepalived+haproxy實(shí)現(xiàn)MySQL高可用負(fù)載均衡的配置方法,通過這兩個(gè)軟件可以有效地使MySQL脫離故障及進(jìn)行健康檢測(cè),需要的朋友可以參考下2016-02-02MySQL使用LOAD_FILE()函數(shù)方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于MySQL使用LOAD_FILE()函數(shù)方法和相關(guān)知識(shí)點(diǎ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-09MySQL動(dòng)態(tài)修改varchar長(zhǎng)度的方法
這篇文章主要介紹了MySQL動(dòng)態(tài)修改varchar長(zhǎng)度的方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07