欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解MySQL中WHERE子句的用法

程序员文章站 2024-02-27 19:29:57
我们已经看到sql select命令来从mysql表获取数据。我们可以使用一个条件子句where子句中筛选出来的结果。使用where子句,我们可以指定一个选择的标准来从表中...

我们已经看到sql select命令来从mysql表获取数据。我们可以使用一个条件子句where子句中筛选出来的结果。使用where子句,我们可以指定一个选择的标准来从表中选择所需的记录。
语法:

下面是通用的sql where子句来获取数据从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子句。

假设字段a有值为10和字段b拥有的值为20:

详解MySQL中WHERE子句的用法

 where子句是非常有用的,当想获取的选择表中的行,特别是当你使用mysql的join。join在另一章中讨论。

这是一个常见的做法是使用主键查找记录,使搜索快速。

如果给定的条件不符合任何表中的记录,那么查询不会返回任何行。
从命令提示符获取数据:

这将使用sql select命令的where子句,以获取选择的数据mysql表tutorials_tbl
实例:

下面的例子将返回tutorials_tbl表中作者的名字是sanjay所有记录:

root@host# mysql -u root -p password;
enter password:*******
mysql> use tutorials;
database changed
mysql> select * from tutorials_tbl where tutorial_author='sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3 | java tutorial | sanjay     | 2007-05-21   |
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

除非执行like比较字符串的比较是不区分大小写的。可以搜索区分大小写,使用binary关键字如下。

root@host# mysql -u root -p password;
enter password:*******
mysql> use tutorials;
database changed
mysql> select * from tutorials_tbl \
     where binary tutorial_author='sanjay';
empty set (0.02 sec)

mysql>

使用php脚本获取数据:

可以使用相同sql的select命令的where子句中到php的functionmysql_query()中。这个函数是用来执行sql命令后,另一个php函数mysql_fetch_array()可以用来获取所有选定的数据。这个函数返回的行作为一个关联数组,数字数组或两者。这个函数返回false,如果没有更多的行。
实例:

下面的例子将返回tutorials_tbl表中作者的名字是sanjay所有记录:

<?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="sanjay"';
//by www.jb51.net

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);
?>

上一篇: css滤镜效果(二)

下一篇: