从MyTable中选择*,其中mysql中的name ='%Jack%'

时间:2012-12-25 09:21:33

标签: mysql database select

我想在MySQL中编写一个SELECT,就像MS-SQL中的SELECT

一样
SELECT * FROM MyTable WHERE name='%Jack%'

和这个答案:

+--------+
| Jack   |
+--------+
| Ajack  | 
+--------+
| jackA  | 
+--------+
| AJackA |
+--------+

在MySql中如何做到这一点?

4 个答案:

答案 0 :(得分:4)

使用LIKE

SELECT * FROM MyTable WHERE name LIKE '%Jack%'

如果您对数据使用区分大小写的排序规则,则可以更改查询

SELECT * FROM MyTable WHERE name LIKE '%Jack%' collate utf8_general_ci

SQLFiddle demo

答案 1 :(得分:1)

如果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'

在您的情况下使用

SELECT * FROM MyTable WHERE name LIKE '%Jack%'

答案 2 :(得分:1)

阅读官方文档http://dev.mysql.com/doc/refman/5.0/en/select.html

您工作的变体是SELECT * FROM MyTable WHERE name = 'Jack';

或使用像您工作的变体SELECT * FROM MyTable WHERE name LIKE '%Jack%';

答案 3 :(得分:1)

使用带 LOWER 关键字的 LIKE 运算符,将名称与值匹配。

试试这个:

SELECT * FROM MyTable
WHERE LOWER(name)  LIKE '%jack%';