我想在 MySQL 中写一个 SELECT,就像在 MS-SQL 中的这个 SELECT
SELECT * FROM MyTable WHERE name='%Jack%'
这个答案:
+--------+
| Jack |
+--------+
| Ajack |
+--------+
| jackA |
+--------+
| AJackA |
+--------+
在 MySql 中如何做到这一点?
采用LIKE
SELECT * FROM MyTable WHERE name LIKE '%Jack%'
如果您对数据使用区分大小写的排序规则,则可以为查询更改它
SELECT * FROM MyTable WHERE name LIKE '%Jack%' collate utf8_general_ci
如果 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%'
阅读官方文档http://dev.mysql.com/doc/refman/5.0/en/select.html
您的工作变体是SELECT * FROM MyTable WHERE name = 'Jack'
;
或者使用你的工作变体是SELECT * FROM MyTable WHERE name LIKE '%Jack%';
使用LIKE运算符和LOWER关键字将名称与值匹配。
试试这个:
SELECT * FROM MyTable
WHERE LOWER(name) LIKE '%jack%';