English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQL 테이블에서 SQL SELECT 문을 사용하여 데이터를 읽는 방법을 알고 있습니다.
테이블에서 조건에 따라 데이터를 선택하려면 WHERE 문을 SELECT 문에 추가할 수 있습니다.
아래는 SQL SELECT 문에서 WHERE 문을 사용하여 데이터 테이블에서 데이터를 읽는 일반 문법입니다:
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE 조건1 [AND [OR]] 조건2.....
쿼리 문에서 하나 이상의 테이블을 사용할 수 있으며, 테이블 간은 콤마(,)로 구분하고 WHERE 문을 사용하여 쿼리 조건을 설정할 수 있습니다.
WHERE 문에서 어떤 조건을 지정할 수 있습니까?
AND 또는 OR를 사용하여 하나 또는 여러 조건을 지정할 수 있습니다.
WHERE 문은 SQL의 DELETE 또는 UPDATE 명령어에도 적용될 수 있습니다.
WHERE 문은 프로그램 언어의 if 조건과 유사하며, MySQL 테이블의 필드 값에 따라 특정 데이터를 읽습니다.
아래는 연산자 목록으로, WHERE 절에서 사용할 수 있습니다.
아래 표에서는 A 가 10, B 가 20
연산자 | 설명 | 示例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
如果我们想在 MySQL 数据表中读取指定的数据,WHERE 子句是非常有用的。
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
我们将在SQL SELECT语句使用WHERE子句来读取MySQL数据表 w3codebox_tbl 中的数据:
示例
以下示例将读取 w3codebox_tbl 表中 w3codebox_author 字段值为 Sanjay 的所有记录:
SELECT * from w3codebox_tbl WHERE w3codebox_author='基础教程网';
输出结果:
MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 關鍵字来设定 WHERE 子句的字符串比较是区分大小写的。
如下示例:
mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com'; Empty set (0.01 sec) mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com'; +----------+-------------+--------------+-----------------+ | w3codebox_id | w3codebox_title | w3codebox_author | submission_date | +----------+-------------+--------------+-----------------+ | 1 | PHP을 배우기 | oldtoolbag.com | 2018-04-14 | | 2 | MySQL을 배우기 | oldtoolbag.com | 2018-04-14 | | 3 | JAVA 교육 | oldtoolbag.com | 2018-04-14 | +----------+-------------+--------------+-----------------+ 3 rows in set (0.00 sec)
예제에서 사용된 BINARY ключ워드는 대소문자 구분이 있으므로 w3codebox_author='oldtoolbag.com' 의 쿼리 조건은 데이터가 없습니다.
mysqli_query() 함수와 같은 SQL SELECT 명령어를 사용하여 WHERE 문자句를 포함한 데이터를 가져올 수 있습니다.
이 함수는 SQL 명령을 실행한 후 PHP 함수 mysqli_fetch_array()을 통해 모든 쿼리 데이터를 출력하는 데 사용됩니다.
다음 예제는 w3codebox_tbl 테이블에서 w를 사용하여 반환3codebox_author 필드 값이 oldtoolbag.com의 기록:
<?php $dbhost = 'localhost'; // MySQL 서버 호스트 주소 $dbuser = 'root'; // MySQL 사용자 이름 $dbpass = '123456'; // MySQL 사용자 이름 비밀번호 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn) { die('연결 실패: ' . mysqli_error($conn)); } // 编码 설정, 중국어 깜빡임 방지 mysqli_query($conn, "set names utf8); // w를 읽기3codebox_author이 oldtoolbag.com의 데이터 $sql = 'SELECT w3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl WHERE w3codebox_author="oldtoolbag.com"'; mysqli_select_db($conn, 'w3codebox'); $retval = mysqli_query($conn, $sql); if(! $retval) { die('데이터 읽기 불가: ' . mysqli_error($conn)); } echo '<h2">기본 튜토리얼 웹 MySQL WHERE 문 테스트<h2">;</ echo '<table border="1><tr><td>교육 ID</td><td>제목</td><td>작가</td><td>제출 날짜</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo "<tr><td> {$row['w3codebox_id']}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; // 메모리 해제 mysqli_free_result($retval); mysqli_close($conn); ?>
출력 결과는 다음과 같습니다: