Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合“like”和“equals”(mysql)_Mysql_Sql - Fatal编程技术网

结合“like”和“equals”(mysql)

结合“like”和“equals”(mysql),mysql,sql,Mysql,Sql,我有这张桌子: +------+----------+-------------+----------+ | id | name | name_orig | year | +------+----------+-------------+----------+ | 1 | movie | film | 1987 | | 2 | game | toy | NULL | | 3 | picture

我有这张桌子:

+------+----------+-------------+----------+
| id   | name     | name_orig   | year     |
+------+----------+-------------+----------+
|  1   | movie    | film        | 1987     |
|  2   | game     | toy         | NULL     |
|  3   | picture  | art         | 2018     |
|  4   | audio    | voice       | 1        |
+------+----------+-------------+----------+
当我使用以下命令时:

SELECT * FROM `table` WHERE `name` LIKE 'a%' OR `name_orig` LIKE 'a%' AND `year`='1'
它的代码是第3行和第4行,而不是只有4行

我试着用这个修改过的代码来修复它

SELECT * FROM `table` WHERE (`name` LIKE 'a%' OR `name_orig` LIKE 'a%') AND `year`='1'
但是现在MySQL返回了一个空结果


如何在“name”和“name_orig”中搜索,而不忘记“year”以获得所需的结果行4?

尝试删除数字周围的单引号。。。year=1,即使在我得到第4行的那一年有一个int,我还是在上面测试了它

然后插入:

INSERT INTO test (id,name, name_orig, year)
VALUES ( 1, 'movie','film', 1987 ),(2, 'game', 'toy', NULL),(3,'picture','art', 2018),(4, 'audio', 'voice', 1)  ;
询问

SELECT * FROM `test` WHERE (`name` LIKE 'a%' OR `name_orig` LIKE 'a%') AND `year`='1'
结果是:

id |    name  | name_orig | year
------------------------------------
4  |    audio | voice     |      1

尝试删除1的引号您的年份列是什么类型的?您是否应该使用AND`year`=1无引号?尽管我希望MySQL会强制它。您的第二个查询在逻辑上是正确的。在本地尝试一下,我可以使用您的查询,如图所示,无论year是int还是varchar。。。column.@T.J.Crowder我在一个fiddle上测试了它,同样的…MySQL将强制,数据似乎与问题中描述的不一样。是的,我们不能用给出的数据回答。谢谢,但这不是问题。不清楚,在db-fiddle.com它可以工作,但在我的服务器上-不意味着你没有给出相同的数据,所以我们无法回答
id |    name  | name_orig | year
------------------------------------
4  |    audio | voice     |      1