like %和-的區別與使用


通配符的分類:
  %百分號通配符:表示任何字符出現任意次數(可以是0次).

  下划線通配符:表示只能匹配單個字符,不能多也不能少,就是一個字符.

  like操作符: LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配進行比較.

  注意: 如果在使用like操作符時,后面的沒有使用通用匹配符效果是和=一致的,

  如:SELECT * FROM products WHERE products.prodname like '1000';只能匹配的結果為"1000",而不能匹配像"JetPack 1000"這樣的結果.

%”通配符使用:

  匹配以"yves"開頭的記錄(包括記錄"yves"):

  SELECT FROM products WHERE products.prodname like 'yves%';

  匹配包含"yves"的記錄(包括記錄"yves"):

  SELECT FROM products WHERE products.prod_name like '%yves%';

  匹配以"yves"結尾的記錄(包括記錄"yves",不包括記錄"yves ",也就是yves后面有空格的記錄,這里需要注意):

  SELECT * FROM products WHERE products.prodname like '%yves';

“_”通配符使用:

  SELECT FROM products WHERE products.prodname like 'y_ves'; 匹配結果為: 像"yyves"這樣記錄.

  SELECT FROM products WHERE products.prodname like 'yves__'; 匹配結果為: 像"yvesHe"這樣的記錄.(一個下划線只能匹配一個字符,不能多也不能少)

注意事項:

注意大小寫:

  在使用模糊匹配時,也就是匹配文本時,mysql是可能區分大小的,也可能是不區分大小寫的,這個結果是取決於用戶對MySQL的配置方式.如果是區分大小寫,那么像"YvesHe"這樣記錄是不能被"yves__"這樣的匹配條件匹配的.

注意尾部空格:

  "%yves"是不能匹配"heyves "這樣的記錄的.

注意NULL:

  %通配符可以匹配任意字符,但是不能匹配NULL,也就是說SELECT * FROM products WHERE products.prodname like '%';是匹配不到products.prodname為NULL的的記錄.

技巧與建議:

  正如所見, MySQL的通配符很有用。但這種功能是有代價的:通配符搜索的處理一般要比前面討論的其他搜索所花時間更長。

  這里給出一些使用通配符要記住的技巧。

  不要過度使用通配符。如果其他操作符能達到相同的目的,應該使用其他操作符。

  在確實需要使用通配符時,除非絕對有必要,否則不要把它們用在搜索模式的開始處。把通配符置於搜索模式的開始處,搜索起來是最慢的。

  仔細注意通配符的位置。如果放錯地方,可能不會返回想要的數.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM