我们已经看到SQL SELECT 命令从MySQL表中获取数据.我们还可以使用一个名为 WHERE 子句的条件子句来选择所需的记录.
带有'等于'符号(=)的WHERE子句有效我们想要完全匹配的地方很好.就像"tutorial_author ='Sanjay'"一样.但是可能需要我们想要过滤掉tutorial_author名称应该包含"jay"的所有结果.这可以使用 SQL LIKE子句和WHERE子句来处理.
如果SQL LIKE子句与%字符一起使用,那么它将像UNIX中的元字符(*),同时在命令提示符下列出所有文件或目录.如果没有%字符,则LIKE子句与等于符号以及WHERE子句非常相似.
以下代码块具有SELECT命令的通用SQL语法以及用于从MySQL表中获取数据的LIKE子句.
SELECT field1, field2,...fieldN table_name1, table_name2... WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
您可以使用WHERE子句指定任何条件.
您可以使用LIKE子句以及WHERE子句.
您可以使用LIKE子句代替等于符号.
当LIKE与%符号一起使用时,它将像元字符搜索一样工作.
你可以使用 AND 或 OR 运算符指定多个条件.
A WHERE ... LIKE子句可以与DELETE一起使用或UPDATE SQL命令也指定条件.
这将使用带有WHERE ... LIKE子句的SQL SELECT命令从MySQL表中获取所选数据 - tutorials_tbl .
以下示例将返回 tutorials_tbl 表中的所有记录,作者姓名以 jay 结尾 :
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> SELECT * from tutorials_tbl -> WHERE tutorial_author LIKE '%jay'; +-------------+----------------+-----------------+-----------------+ | tutorial_id | tutorial_title | tutorial_author | submission_date | +-------------+----------------+-----------------+-----------------+ | 3 | JAVA Tutorial | Sanjay | 2007-05-21 | +-------------+----------------+-----------------+-----------------+ 1 rows in set (0.01 sec) mysql>
您可以使用类似WHERE ... LIKE子句的语法PHP函数 - mysql_query().此函数用于执行SQL命令,如果WHERE ... LIKE子句与SELECT命令一起使用,则可以使用另一个PHP函数 - mysql_fetch_array()来获取所有选定的数据.
但是如果WHERE ... LIKE子句与DELETE或UPDATE命令一起使用,则不需要进一步的PHP函数调用.
尝试以下示例以返回 tutorials_tbl 表中的作者姓名包含 jay 的所有记录 :
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl WHERE tutorial_author LIKE "%jay%"'; mysql_select_db('TUTORIALS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Tutorial ID :{$row['tutorial_id']} <br> ". "Title: {$row['tutorial_title']} <br> ". "Author: {$row['tutorial_author']} <br> ". "Submission Date : {$row['submission_date']} <br> ". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>