SQL中代替Like語句的另一種寫法

2021-04-23 15:19:05 字數 594 閱讀 7558

比如查詢使用者名稱包含有"c"的所有使用者, 可以用

use mydatabase

select * from table1 where username like'%c%"

下面是完成上面功能的另一種寫法:

use mydatabase

select * from table1 where charindex('c',username)gt;0

這種方法理論上比上一種方法多了乙個判斷語句,即gt;0, 但這個判斷過程是最快的, 我想信80%以上的運算都是花在查詢字串及其它的運算上, 所以運用charindex函式也沒什麼大不了. 用這種方法也有好處, 那就是對%,|等在不能直接用like查詢到的字元中可以直接在這charindex中運用, 如下:

use mydatabase

select * from table1 where charindex('%',username)gt;0

也可以寫成:

use mydatabase

select * from table1 where charindex(char(37),username)gt;0

ascii的字元即為%

SQL中代替Like語句的另一種寫法

如查詢使用者名稱包含有 c 的所有使用者,可以用 use mydatabase select from table1 where username like c admini5.com 下面是完成上面功能的另一種寫法 use mydatabase select from table1 where c...

sql語句like的用法

在sql結構化查詢語言中,like語句有著至關重要的作用。like語句的語法格式是 select from 表名 where 欄位名 like 對應值 子串 它主要是針對字元型字段的,它的作用是在乙個字元型字段列中檢索包含對應子串的。假設有乙個資料庫中有個表table1,在table1中有兩個字段,...

MySQL 代替in not in 的sql語句

1.in和existsin是把外表和內錶作hash連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢,一直以來認為exists比in效率高的說法是不準確的。如果查詢的兩個表大小相當,那麼用in和exists差別不大 如果兩個表中乙個較小乙個較大,則子查詢表大的用exists...