Mysql 使用like语句后如何从SQL中获取数据

Mysql 使用like语句后如何从SQL中获取数据,mysql,sql,Mysql,Sql,我正在使用这个查询 SELECT ap.id, ap.text, p.id AS uId, p.points, p.text AS up FROM `phrases` AS ap LEFT JOIN `phrases` AS p ON p.createdBy = 1 WHERE ap.createdBy = 0 AND (ap.text LIKE CONCAT('%', p.text, '%') OR p.tex

我正在使用这个查询

SELECT 
    ap.id, ap.text,
    p.id AS uId, p.points, p.text AS up 
FROM 
    `phrases` AS ap 
LEFT JOIN 
    `phrases` AS p ON p.createdBy = 1 
WHERE 
    ap.createdBy = 0  
    AND (ap.text LIKE CONCAT('%', p.text, '%')
         OR p.text LIKE CONCAT('%', ap.text, '%'))
我得到的数据如下:


但是,我还希望ap表中所有不匹配的数据都为null,我想您希望匹配
createdby=1的所有短语以及包含文本的匹配短语。如果是:

SELECT ap.id, ap.text, p.id as uId, p.points,
p.text as up 
FROM `phrases` ap LEFT JOIN
     `phrases` p
     ON p.createdBy = 1 AND
        (p.text LIKE concat('%', ap.text,'%') or
         p.ap.createdBy = 0 
        )
WHERE ap.createdBy = 0 ;

我想您需要匹配
createdby=1的所有短语和包含文本的匹配短语。如果是:

SELECT ap.id, ap.text, p.id as uId, p.points,
p.text as up 
FROM `phrases` ap LEFT JOIN
     `phrases` p
     ON p.createdBy = 1 AND
        (p.text LIKE concat('%', ap.text,'%') or
         p.ap.createdBy = 0 
        )
WHERE ap.createdBy = 0 ;

两个表之间的连接键是什么?您的问题中不清楚,哪一列为空,也不清楚。因此,请清除问题中的内容。请提供示例数据和所需结果。你应该解释你想要实现的逻辑。并提供一个数据库标记。我正在加入同一个表-首先使用createdBy=1,然后使用createdBy=0键。没有一列是空的,但我想检索所有数据。两个表之间的连接键是什么在您的问题中不清楚,哪一列是空的也不清楚,因此请清除问题中的内容。请提供示例数据和所需结果。你应该解释你想要实现的逻辑。并提供一个数据库标记。我正在加入同一个表-首先使用createdBy=1,然后使用createdBy=0键。没有一列为空,但我想检索所有数据。谢谢,这是可行的,但我想显示createdby=1的所有短语,您的解决方案显示createdby=0的所有短语。你能帮忙吗?@AbhijitSood。我修改了答案。谢谢,这是可行的,但我想显示createdby=1的所有短语,您的解决方案显示createdby=0的所有短语。你能帮忙吗?@AbhijitSood。我修改了答案。