MySQL where 어휘
MySQL WHERE 절
SQL SELECT 문을 사용하여 MySQL 테이블에서 데이터를 읽는 방법을 알고 있습니다.
테이블에서 조건부로 데이터를 선택하려면 SELECT 문에 WHERE 절을 추가하세요.
구문
다음은 WHERE 절을 사용하여 데이터 테이블에서 데이터를 읽는 SQL SELECT 문의 일반 구문입니다.
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2....
쿼리 문에는 하나 이상의 테이블을 사용할 수 있습니다. 쉼표(,)를 사용하여 테이블을 구분하고 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 데이터 테이블 php_tbl의 데이터를 읽습니다.
예
다음 예에서는 사용자 테이블의 user_author 필드 값이 PHP인 모든 레코드를 읽습니다.
mysql> from user WHERE user_author='PHP';
MySQL WHERE 절의 문자열 비교는 대소문자를 구분하지 않습니다. BINARY 키워드를 사용하면 WHERE 절에서 문자열 비교 시 대소문자를 구분할 수 있습니다.
다음 예시
root@host# mysql -u root -p password; Enter password:**** mysql> use demo; Database changed mysql> SELECT * from user \ WHERE BINARY user_author='php'; Empty set (0.02 sec) mysql>예시에서는 BINARY 키워드를 사용합니다. 이는 대소문자를 구분하므로 user_author='php'에 대한 쿼리 조건에는 데이터가 없습니다. 의.
PHP 스크립트를 사용하여 데이터 읽기
PHP 함수 mysql_query()와 동일한 SQL SELECT 명령을 WHERE 절과 함께 사용하여 데이터를 가져올 수 있습니다.
이 함수는 SQL 명령을 실행한 후 PHP 함수 mysql_fetch_array()를 통해 쿼리된 모든 데이터를 출력하는 데 사용됩니다.
예
다음 예는 user_author 필드 값을 사용하여 php_tbl 테이블의 PHP로 레코드를 반환합니다.
<?php header("Content-Type: text/html;charset=utf-8"); $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = 'root'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('连接失败: ' . mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn , "set names utf8"); // 读取 user_author 为 user.COM 的数据 $sql = 'SELECT user_id, user_title, user_author, submission_date FROM user WHERE user_author="PHP"'; mysqli_select_db( $conn, 'demo' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('无法读取数据: ' . mysqli_error($conn)); } echo '<h2>PHP中文网 MySQL WHERE 子句测试<h2>'; echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>'; while($row = mysqli_fetch_array($retval, MYSQL_ASSOC)) { echo "<tr><td> {$row['user_id']}</td> ". "<td>{$row['user_title']} </td> ". "<td>{$row['user_author']} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; // 释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>
관련 비디오 자습서 권장 사항 :