📜  MySQL-LIKE子句

📅  最后修改于: 2020-11-27 06:36:05             🧑  作者: Mango


我们已经看到了SQL SELECT命令从MySQL表中获取数据。我们还可以使用称为WHERE子句的条件子句来选择所需的记录。

WHERE子句带有“等于”符号(=)的地方可以正常工作。就像“ tutorial_author =’Sanjay’”一样。但是在某些情况下可能需要过滤掉所有结果,其中tutorial_author名称应包含“ jay”。可以使用SQL LIKE子句和WHERE子句来处理。

如果将SQL LIKE子句与%字符一起使用,则它将在UNIX中像元字符(*)一样工作,同时在命令提示符下列出所有文件或目录。如果没有%字符,则LIKE子句与WHERE子句的等号非常相同。

句法

以下代码块具有SELECT命令的通用SQL语法以及LIKE子句,用于从MySQL表中获取数据。

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • 您可以使用WHERE子句指定任何条件。

  • 您可以将LIKE子句与WHERE子句一起使用。

  • 您可以使用LIKE子句代替等于符号。

  • 当LIKE与%符号一起使用时,它将像元字符搜索一样工作。

  • 您可以使用ANDOR运算符指定多个条件。

  • WHERE … LIKE子句可以与DELETE或UPDATE SQL命令一起使用,还可以指定条件。

在命令提示符处使用LIKE子句

这将使用带有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>

在PHP脚本中使用LIKE子句

您可以在PHP函数mysql_query()中使用类似WHERE … LIKE子句的语法。如果WHERE … LIKE子句与SELECT命令一起使用,则此函数用于执行SQL命令,然后再执行另一个PHP函数– mysql_fetch_array()可用于获取所有选定的数据。

但是,如果WHERE … LIKE子句与DELETE或UPDATE命令一起使用,则不需要进一步的PHP函数调用。

尝试以下示例,以从authors_tbl表中返回其作者名称包含jay的所有记录-

 ".
         "Title: {$row['tutorial_title']} 
". "Author: {$row['tutorial_author']}
". "Submission Date : {$row['submission_date']}
". "--------------------------------
"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>