2017-09-06 75 views
0

这是我正在使用的mysql查询。如何使用Like运算符在Mysql中显示重复值?

SELECT distinct Emprego.title as title, Emprego.up as up, Emprego.datetime as datetime, Emprego.content as content, Category.name as category_name, Emprego.states as states, Emprego.id as id, User.nome as nome, Emprego.email as email FROM City, User , Category, Emprego, Type 
    where 
    Emprego.category_id=Category.id and Emprego.City_id=City.id and Emprego.type_id=Type.id and Type.id='$type' 
    and (Emprego.title LIKE '%$text%') or (Emprego.content like '%$text%') and Emprego.User_id= User.id 
    order by datetime DESC 

我正在使用此查询获取重复行。

如何解决?

这是结果:

[ 
    { 
     "title": "Cozinheiro Madeira", 
     "up": "1", 
     "datetime": "2017-09-05 23:41:48", 
     "content": "Cozinheiro na \nMadeira", 
     "category_name": "Telecomunicações", 
     "states": "2", 
     "id": "12", 
     "nome": "admin", 
     "email": "[email protected]" 
    }, 
    { 
     "title": "Cozinheiro Madeira", 
     "up": "1", 
     "datetime": "2017-09-05 23:41:48", 
     "content": "Cozinheiro na \r\nMadeira", 
     "category_name": "Telecomunicações", 
     "states": "2", 
     "id": "16", 
     "nome": "admin", 
     "email": "[email protected]" 
    } 
] 
+1

你*没有*获取重复的行,因为你有'选择不同'。请编辑您的问题并显示您所得到的结果。我们可以解释他们为什么不是duplciates。 –

+0

@GordonLinoff查看结果,看看是否没有“重复”大声笑....我看到重复... –

+0

你没有重复。 “ID”列在每行不同 – nzjoel

回答

0

你可能有,因为下面的问题:

(Emprego.title LIKE '%$text%') or (Emprego.content = '%$text%') and Emprego.User_id= User.id 

您是不是要找:

(Emprego.title LIKE '%$text%' or Emprego.content = '%$text%') and Emprego.User_id= User.id 
+0

有了这个查询,我没有结果...不工作.. –

0

您所查询的是这么写的不好它建议向您展示如何编写可敬的SQL查询。 从不JOIN子句中使用逗号。 始终使用正确的,明确的JOIN语法:

SELECT distinct e.title, e.up, e.datetime, e.content, 
     c.name as category_name, e.states, e.id, 
     u.nome as nome, e.email as email 
FROM Category c JOIN 
    Emprego e 
    ON e.category_id = c.id JOIN 
    City ci 
    ON e.city_id = ci.id JOIN 
    User u 
    ON e.User_id = u.id JOIN 
    Type t 
    ON e.type_id = t.id 
WHERE e.title LIKE '%$text%' or e.content = '%$text%' 
ORDER BY e.datetime DESC; 

目前还不清楚是否真的需要SELECT DISTINCT。由于ANDOR运营商的优先权,这也解决了WHERE条款中的问题。

+0

未知的'User.id''在'子句'...不工作 –

+0

@PauloRodrigues。 。 。 'on'子句中没有'user.id'。 –

+0

大声笑您创建错误,然后解释明显.. –