1

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

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

这个答案:

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

在 MySql 中如何做到这一点?

4

4 回答 4

4

采用LIKE

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

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

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

SQLFiddle 演示

于 2012-12-25T09:22:29.947 回答
1

如果 SQLLIKE子句与 % 字符一起使用,那么它将像 Unix 中的元字符 (*) 一样工作,同时在命令提示符下列出所有文件或目录。

没有 % 字符的LIKE子句与等号和子句非常相似WHERE

句法:

这是 SELECT 命令的通用 SQL 语法以及 LIKE 子句,用于从 MySQL 表中获取数据:

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

在你的情况下使用

SELECT * FROM MyTable WHERE name LIKE '%Jack%'
于 2012-12-25T09:26:48.367 回答
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%';

于 2012-12-25T09:32:13.243 回答
1

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

试试这个:

SELECT * FROM MyTable
WHERE LOWER(name)  LIKE '%jack%';
于 2012-12-25T14:42:36.177 回答