A. sql語句中通配符有幾種
SQL語句中通配符有四種,分別是百分號%、下劃線_、方括弧[
]、方括弧[!](或[^])。
在搜索資料庫中的數據時,SQL
通配符可以替代一個或多個字元。SQL
通配符必須與
LIKE
運算符一起使用。
1、百分號%:可匹配任意類型和長度的字元,如果是中文,請使用兩個百分號即%%。
2、下劃線_:匹配單個任意字元,它常用來限製表達式的字元長度。
3、方括弧[
]:指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
方括弧[^]或者[!]:其取值也[
]相同,但它要求所匹配對象為指定字元以外的任一個字元。
(1)sql匹配中文字元擴展閱讀:
SQL通配符是使用用特殊字元或語法拼寫,用來執行模糊搜索指令的語句功能。在搜索資料庫中的數據時,SQL
通配符可以替代一個或多個字元。
SQL
通配符必須與
LIKE
運算符一起使用。如在數據中搜索以大寫「A」字母開頭的字元類型數據,可以使用like
"A%"。
下劃線和百分號在sql模糊查詢like語句中為特殊字元,分別可匹配1個字元和0到多個字元,如果需要真正查詢特殊字元得轉義,如like
'a\_b%'
escape
'\',將匹配前3個字元為a_b的所有記錄。
參考資料來源:搜狗網路-SQL通配符
B. sql查詢所有包含中文的數據
判斷length(content)和lengthb(content)是否相等,如果不相等則包含中文,否則全英文。
length(content)計算content的字元個數,一個中文字元長度為1;
lengthb(content)計算content的位元組位數,一個位長度為1,一個中文字元長度為2。
1樓說的不對
C. 怎樣在sql里實現中文搜索和模糊搜索
使用SQL 通配符可以替代一個或多個字元,即模糊查詢。
SQL 通配符必須與 LIKE 運算符一起使用。在 SQL 中,可使用以下通配符如下:
1、% 替代一個或多個字元
2、_ 僅替代一個字元
3、[charlist] 字元列中的任何單一字元
4、[^charlist]或者[!charlist] 不在字元列中的任何單一字元
以圖中表格為例,說明一下各通配符用法
1、 查詢居住在以 "Ne" 開始的城市裡的人:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
2、查詢居住在包含 "lond" 的城市裡的人:
SELECT * FROM Persons WHERE City LIKE '%lond%'
3、查詢名字的第一個字元之後是 "eorge" 的人:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'
4、查詢記錄的姓氏以 "C" 開頭,然後是一個任意字元,然後是 "r",然後是任意字元,然後是 "er":
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
5、查詢居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
6、查詢居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
D. SQL里如何截取中文字元串 100分
sql 截取字元串:
1、LOCATE(substr , str ):返回子串 substr 在字元串 str 中第一次出現的位置,如果字元substr在字元串str中不存在,則返回0;
2、POSITION(substr IN str ):返回子串 substr 在字元串 str 中第一次出現的位置,如果字元substr在字元串str中不存在,與LOCATE函數作用相同;
3、LEFT(str, length):從左邊開始截取str,length是截取的長度;
4、RIGHT(str, length):從右邊開始截取str,length是截取的長度;
5、SUBSTRING_INDEX(str ,substr ,n):返回字元substr在str中第n次出現位置之前的字元串;
6、SUBSTRING(str ,n ,m):返回字元串str從第n個字元截取到第m個字元;
7、REPLACE(str, n, m):將字元串str中的n字元替換成m字元;
8、LENGTH(str):計算字元串str的長度。
E. sql語句有中文,亂碼怎麼解決
方法一:
通過增加參數
–default-character-set
=
utf8
解決亂碼問題
mysql
-u
root
-p
password
<
path_to_import_file
–default-character-set
=
utf8
方法二:
在命令行導入亂碼解決
1.
use
database_name;
2.
set
names
utf8;
(或其他需要的編碼)
3.
source
example.sql
(sql文件存放路徑)
方法三:
直接粘貼sql文件里的代碼
1.
打開sqlyog客戶端軟體;
2.
定位到sql編輯器,然後用記事本打開剛剛導出的sql文件;
3.
復制文件中所有sql語句到sql編輯器當中,執行這些sql代碼;
方法四:
用記事本或其他文本工具改變sql文件的編碼格式(若方法三不行,那就嘗試方法四)
1.
用記事本(或ue)打開剛才的導出的sql文件;
2.
另存此文件——打開另存為對話框,選擇對話框中的編碼格式為unicode編碼;
3.
保存文件,然後ctrl+a,全選;
4.
復制裡面的sql語句到sqlyog中的「sql編碼器」當中,再執行一次sql語句;
5.
執行完成後切記刷新一次,查看中文的數據表,亂碼消除,大功告成;
F. Oracle中如何用SQL檢測欄位是否包括中文字元
select * from table where regexp_like(欄位,'[^[:alphanum:]]')
這句話的意思是顯示在table表的欄位中不包含a-z,A-Z,0-9字元的欄位。除了這些意外能包含的字元基本上只有漢字和標點符號,但是如果你的資料庫是多文字版本的,比如裡面有日語,法語德語等語言,那麼這個就不好使了。
G. SQL之模糊查詢的四種用法
MySql 使用 like關鍵字 進行模糊查詢,like關鍵字 通常用在 where條件查詢,like關鍵字 通常配合 %、_、[ ]、[^ ] 使用。
%表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
注意:只能查詢連續的文字。【比如「深圳市福田區」可以查詢,「深圳市區」查詢不出來】
注意:此語句沒有那麼靈活,比較適用於固定的某個文字的查詢。
注意:此語句比較靈活,可以查詢相隔幾個文字,比較實用。【比如「深圳市福田區小學」可以查詢,「深圳市福區小」也可以查詢】
表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句。
表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
H. sql server 字元匹配 有關漢字
1.SQL 函數:字元匹配 like ,長度函數 len(); 還是長度函數datalength();
2.下面介紹有漢字取法,SQL 如下:
3.declare @sql varchar(1000)
set @sql='abc國m,de中d國e人民f'
select @sql 字元,DATALENGTH(@sql)-len(@sql) 漢字個數
4.下面介紹字元匹配 like 用法:
5.SQL如下:
聲明一個表A ,有欄位a。數據:12345abcd
select * from A where a like '%12345%'
結果存在記錄:
I. MySQL資料庫中查找中文字元
SELECT * FROM `tableA` WHERE LENGTH(`row_name`)<>CHARACTER_LENGTH(`row_name`)
這樣就能找出含有中文的記錄了;如果查找全英文的記錄,長度是相等的,把「<>」換成「=」就可以了,即
SELECT * FROM `tableA` WHERE LENGTH(`row_name`)=CHARACTER_LENGTH(`row_name`)