国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL數(shù)據(jù)庫WHERE查詢in,like子查詢詳解

2024-07-24 12:37:24
字體:
供稿:網(wǎng)友

在mysql中select的where子查詢是我們用到最多的了,因為where 后面條件是我們篩選數(shù)據(jù)一個重要的參數(shù)了,下面我來給大家介紹一下where子查詢用法。

我們已經(jīng)看到SQL SELECT命令來從MySQL表獲取數(shù)據(jù)。我們可以使用一個條件子句WHERE子句中篩選出來的結(jié)果。使用WHERE子句,我們可以指定一個選擇的標(biāo)準(zhǔn)來從表中選擇所需的記錄。

語法,下面是通用的SQL WHERE子句來獲取數(shù)據(jù)從MySQL表的SELECT命令的語法,代碼如下:

SELECT field1, field2,...fieldN table_name1, table_name2...

[WHERE condition1 [AND [OR]] condition2.....

可以使用一個或多個以逗號分隔的表,包括各種使用WHERE子句條件,但是WHERE子句的SELECT命令是一個可選部分,您可以使用WHERE子句指定任何條件,您可以指定一個以上的條件下使用AND或者OR運算符.

一個WHERE子句中可以使用的分散DELETE或UPDATE的SQL命令指定條件,就像編程語言中的一樣,如果條件的WHERE子句,該子句用于在MySQL的表的字段值與給定值比較,如果從外部給定值是等于可用字段值在MySQL表,然后返回該行.

這里是清單的運算符可以使用WHERE子句,假設(shè)字段A有值為10和字段B擁有的值為20:

操作  描述  例子  

=  如果兩個操作數(shù)的值等于或檢查,如果是的話,條件為真。  (A = B) is not true.

!=  如果兩個操作數(shù)的值等于或檢查,如果值不相等,則條件為真。  (A != B) is true.

>  檢查的值,如果左操作數(shù)大于右操作數(shù)的值,如果是的話,條件為真。  (A > B) is not true.

<  檢查如果左操作數(shù)的值小于右操作數(shù)的值,如果是的話,條件為真.(A < B) is true.

>=  檢查如果左操作數(shù)的值大于或等于右操作數(shù)的值,如果是的話,條件為真.(A >= B) is not true.

<=  檢查如果左操作數(shù)的值小于或等于右操作數(shù)的值,如果是的話,條件為真.(A <= B) is true. 

WHERE子句是非常有用的,當(dāng)想獲取的選擇表中的行,特別是當(dāng)你使用MySQL的JOIN,JOIN在另一章中討論.

這是一個常見的做法是使用主鍵查找記錄,使搜索快速,如果給定的條件不符合任何表中的記錄,那么查詢不會返回任何行,從命令提示符獲取數(shù)據(jù),這將使用SQL SELECT命令的WHERE子句,以獲取選擇的數(shù)據(jù)MySQL表tutorials_tbl.

實例,下面的例子將返回tutorials_tbl表中作者的名字是Sanjay所有記錄,代碼如下:

  1. root@host# mysql -u root -p password
  2. Enter password:******* 
  3. mysql> use TUTORIALS; 
  4. Database changed 
  5. mysql> SELECT * from tutorials_tbl WHERE tutorial_author='Sanjay'
  6. +-------------+----------------+-----------------+-----------------+ 
  7. | tutorial_id | tutorial_title | tutorial_author | submission_date | 
  8. +-------------+----------------+-----------------+-----------------+ 
  9. |           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      | 
  10. +-------------+----------------+-----------------+-----------------+ 
  11. rows in set (0.01 sec)--Vevb.com 
  12. mysql> 

除非執(zhí)行LIKE比較字符串的比較是不區(qū)分大小寫的,可以搜索區(qū)分大小寫,使用BINARY關(guān)鍵字如下,代碼如下:

  1. root@host# mysql -u root -p password
  2. Enter password:******* 
  3. mysql> use TUTORIALS; 
  4. Database changed 
  5. mysql> SELECT * from tutorials_tbl  
  6.           WHERE BINARY tutorial_author='sanjay'
  7. Empty set (0.02 sec) 
  8.  
  9. mysql> 

MySQL LIKE子句

語法,這里是通用的SQL的SELECT命令的語法與LIKE子句來從MySQL表獲取數(shù)據(jù):

SELECT field1, field2,...fieldN table_name1, table_name2...

WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

您可以使用WHERE子句指定任何條件,您可以使用LIKE子句與WHERE子句一起使用,您可以使用LIKE子句中的等號的地方,當(dāng)LIKE是用來與%符號,那么它會像一個元字符的搜索,您可以指定一個以上的條件下使用AND或者OR運算符.

一個WHERE ... LIKE子句中可以使用的分散DELETE或UPDATE的SQL命令,也可以指定一個條件.

使用LIKE子句在命令提示符下:

這將使用SQL SELECT命令的WHERE ... LIKE子句獲取選定從MySQL表tutorials_tbl的數(shù)據(jù).

例子,下面的例子將返回tutorials_tbl表作者姓名以jay結(jié)尾所有記錄,代碼如下:

  1. root@host# mysql -u root -p password
  2. Enter password:******* 
  3. mysql> use TUTORIALS; 
  4. Database changed 
  5. mysql> SELECT * from tutorials_tbl  
  6.     -> WHERE tutorial_author LIKE '%jay'
  7. +-------------+----------------+-----------------+-----------------+ 
  8. | tutorial_id | tutorial_title | tutorial_author | submission_date | 
  9. +-------------+----------------+-----------------+-----------------+ 
  10. |           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      | 
  11. +-------------+----------------+-----------------+-----------------+ 
  12. rows in set (0.01 sec) 
  13.  
  14. mysql> 

PHP腳本中使用LIKE子句:可以使用類似的語法的WHERE...LIKE子句到PHP函數(shù)mysql_query(),這個函數(shù)是用來執(zhí)行SQL命令后,另一個PHP函數(shù)mysql_fetch_array()可以用來獲取所有的數(shù)據(jù),如果WHERE... LIKE子句的SELECT命令用來與.

但是,如果WHERE... LIKE子句正在使用DELETE或UPDATE命令,沒有進(jìn)一步的PHP函數(shù)調(diào)用是必需的.

例子,下面的例子將返回tutorials_tbl表作者姓名以jay結(jié)尾所有記錄,代碼如下:

  1. <?php 
  2. $dbhost = 'localhost:3036'
  3. $dbuser = 'root'
  4. $dbpass = 'rootpassword'
  5. $conn = mysql_connect($dbhost$dbuser$dbpass); 
  6. if(! $conn ) 
  7.   die('Could not connect: ' . mysql_error()); 
  8. $sql = 'SELECT tutorial_id, tutorial_title,  
  9.                tutorial_author, submission_date 
  10.         FROM tutorials_tbl 
  11.         WHERE tutorial_author LIKE "%jay%"'; 
  12. //  
  13. mysql_select_db('TUTORIALS'); 
  14. $retval = mysql_query( $sql$conn ); 
  15. if(! $retval ) 
  16.   die('Could not get data: ' . mysql_error()); 
  17. while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
  18.     echo "Tutorial ID :{$row['tutorial_id']}  <br> "
  19.          "Title: {$row['tutorial_title']} <br> "
  20.          "Author: {$row['tutorial_author']} <br> "
  21.          "Submission Date : {$row['submission_date']} <br> "
  22.          "--------------------------------<br>"
  23. }  
  24. echo "Fetched data successfullyn"
  25. mysql_close($conn); 
  26. ?> 

mysql中 where in 用法詳解,這里分兩種情況來介紹.

1、in 后面是記錄集,代碼如下:

select  *  from  table  where   uname  in(select  uname  from  user);

2、in 后面是字符串,代碼如下:

select  *  from  table  where   uname  in('aaa',bbb','ccc','ddd','eee',ffff'');

注意:這里一定要將字符串用單引號'' 標(biāo)注起來.

3、in 后面是數(shù)組,用如下方法,請參考如下代碼:

  1. //$pieces是含數(shù)據(jù)的數(shù)組 
  2.  
  3. for($i=0;$i<count($pieces);$i++){ 
  4.  
  5. $uname=$uname."'".$pieces[$i]."',"
  6.  
  7.  
  8. $the_uname ="uname in(".$uname."'')"
  9.  
  10. select  *  from  table  where    ".$the_uname." ; 

備注:這種方法的原理其實很簡單,二就是把數(shù)組編程上面“第2種情況”的形式.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 专栏| 南木林县| 塔河县| 缙云县| 张家界市| 石台县| 广汉市| 曲麻莱县| 巩义市| 昌宁县| 曲靖市| 郧西县| 舒城县| 饶河县| 和顺县| 通州区| 开江县| 邓州市| 丹阳市| 宁蒗| 宜章县| 武宁县| 乌兰浩特市| 泸水县| 思南县| 乌拉特中旗| 兴隆县| 巴东县| 渭南市| 巴林右旗| 闽侯县| 温州市| 新源县| 新和县| 城口县| 池州市| 南昌市| 莱西市| 安陆市| 田东县| 清苑县|