Mysql 拥有SQL的确切结果

Mysql 拥有SQL的确切结果,mysql,sql,Mysql,Sql,所以我试图通过函数得到确切的结果,我尝试了很多方法,但都没有成功 故事是,我有一个SQL查询: SELECT SQL_CALC_FOUND_ROWS customers.*, GROUP_CONCAT(fieldsContent.Content SEPARATOR '%||%') AS Content, GROUP_CONCAT(fieldsContent.FieldID SEPARATOR '%||%') AS FieldID, customers.Cr

所以我试图通过函数得到确切的结果,我尝试了很多方法,但都没有成功

故事是,我有一个SQL查询:

SELECT 
    SQL_CALC_FOUND_ROWS customers.*, 
    GROUP_CONCAT(fieldsContent.Content SEPARATOR '%||%') AS Content, 
    GROUP_CONCAT(fieldsContent.FieldID SEPARATOR '%||%') AS FieldID, 
    customers.Created, 
    customers.ID
FROM (`customers`)
    LEFT OUTER JOIN `fieldsContent` ON `fieldsContent`.`TypeID` = `customers`.`ID`
    HAVING Content LIKE "%2%" AND LIKE "%new%"
    GROUP BY `fieldsContent`.`TypeID`
    ORDER BY `customers`.`Created` DESC
结果:

stdClass Object
(
    [ID] => 4857
    [Created] => 1403714637
    [Content] => newman%||%noman%||%newemail@gmail.com%||%92292%||%old%||%7
    [FieldID] => C359FE4B-7A5B-689F-8A26-D030CFC65475%||%E34399EB-0509-2F00-EAD1-38753FCAEA5C%||%3172E7F4-B445-2F7A-74C8-F9C9E85A4C22%||%26D87695-D9F4-9E2F-2BA7-753FBF3E0BBA%||%E443B0BD-5283-CD02-F569-3B05B615B5BC%||%979C2844-870F-961F-FA28-12AC615346E5
)
stdClass Object
(
    [ID] => 175997
    [Created] => 1403714632
    [Content] => john%||%doe%||%google@gmail.com%||%0847%||%new%||%2
    [FieldID] => C359FE4B-7A5B-689F-8A26-D030CFC65475%||%E34399EB-0509-2F00-EAD1-38753FCAEA5C%||%3172E7F4-B445-2F7A-74C8-F9C9E85A4C22%||%26D87695-D9F4-9E2F-2BA7-753FBF3E0BBA%||%E443B0BD-5283-CD02-F569-3B05B615B5BC%||%979C2844-870F-961F-FA28-12AC615346E5
)
问题是我只想要第二个结果,只有在我有“new”和“2”两个词的地方, “新”这个词看起来像纽曼,而数字2看起来像“92292”

所以我只需要第二个结果,而不是第一个

主要的是,我确切地知道单词“new”和“2”在哪个分隔符之后,我不知道如何应用它,因为“new”总是在第四个分隔符之后,“2”总是在第五个分隔符之后

如何解决这个问题有什么疯狂的想法吗? 谢谢

改变这一点:

HAVING Content LIKE "%2%" AND LIKE "%new%"
为此:

HAVING Content LIKE "%\%2" ESCAPE "\" AND LIKE "%\%new\%%" ESCAPE "\"
这假定您正在查找字段ID“979C2844-870F-961F-FA28-12AC615346E5”字符串末尾的2。如果需要更加灵活,您可能希望将其更改为where子句(这不会破坏分组),并在子查询中特别选择FieldID/内容对


另外,我建议使用不同的分隔符,这样您就不需要使用like进行转义。

为什么要使用have而不是where?另外,新文本在实际文本中是否总是用百分位符号包装?@SpectralGhost,因为where不是选项。我需要
Content
列的所有长度,如果我要执行
where
操作,它将破坏我的分组,因为我需要检索所有数据这是什么SQL风格?MySQL?使用%作为分隔符对SQL来说是一个非常糟糕的主意。如果您想要精确匹配,您是否尝试过将
中包含“%2%”和“%new%”等内容的内容替换为
中包含(“2”,“new”)
?是的,我已经更改了分隔符。思维方式很好,简单又好。很好,谢谢!