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ò),于是我請教了上級,寫法是:
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中主鍵為0與主鍵自排約束的關(guān)系詳解(細(xì)節(jié))
這篇文章主要給大家介紹了關(guān)于MySQL中主鍵為0與主鍵自排約束的關(guān)系的相關(guān)資料,主要介紹的是其中的一些非常細(xì)的細(xì)節(jié),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
mysql source 命令導(dǎo)入大的sql文件的方法
本文將詳細(xì)介紹mysql source 命令導(dǎo)入大的sql文件的方法;需要的朋友可以參考下2012-11-11
MySQL表數(shù)據(jù)文件損壞導(dǎo)致數(shù)據(jù)庫無法啟動(dòng)的原因與解決方案
在日常的數(shù)據(jù)庫管理中,遇到MySQL表數(shù)據(jù)文件損壞的情況并不罕見,這種情況下,MySQL數(shù)據(jù)庫可能會(huì)無法正常啟動(dòng),給業(yè)務(wù)運(yùn)行帶來嚴(yán)重影響,本文將探討如何診斷和解決MySQL表數(shù)據(jù)文件損壞導(dǎo)致的數(shù)據(jù)庫無法啟動(dòng)問題,需要的朋友可以參考下2025-03-03
修改MySQL數(shù)據(jù)庫引擎為InnoDB的操作
這篇文章主要介紹了修改MySQL數(shù)據(jù)庫引擎為InnoDB的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問題
這篇文章主要介紹了關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

