问题
表名:imanity
| name | visibility | gender |
|---------|------------|--------|
| mark | True | M |
| mark #1 | True | M |
| mark #2 | False | M |
我有一个包含此信息的SQL表(不是真实的)。问题是,当我尝试过滤以标记#2时,SQL只是直接向上过滤并没有过滤到正确的行,也不返回带有名称标记的所有行。我将使用PHP进行此操作,但现在,我只是尝试使用SQL。
[我尝试了一些命令
1. SELECT visibility FROM imanity where name LIKE 'mark #2';
2. SELECT visibility FROM imanity where name LIKE '%mark #2%';
3. SELECT visibility FROM imanity where name LIKE '%[mark #2]%';
问题有什么解决办法吗?谢谢。
尝试一下
SELECT visibility FROM imanity where name='mark #2';
根据给定的数据库值,查询可以是
SELECT visibility FROM imanity where name like '%mark #%';
它将根据上面给定的数据库数据生成包含mark #
的所有结果。它将返回最后2条记录。
例如,您可以尝试使用RLIKE
。
SELECT `visibility` FROM `imanity` where `name` RLIKE '#';
或如果在感兴趣的列的所有行中使用mark
,则为OR
SELECT `visibility` FROM `imanity` where `name` RLIKE 'mark.#';
您可以在MySQL Regular Expressions中阅读更多内容>
您的查询: