回显mysql语句?

时间:2012-02-08 11:15:17

标签: mysql printing echo

在MySQL语句中是否可以回显

例如:

SELECT p.ID,p.post_title,p.guid,p.post_name,p.post_status,name,taxonomy, <?php echo "TEXT HERE"?> GROUP_CONCAT(DISTINCT name ORDER BY name DESC SEPARATOR '|') AS 'tags',

是否可以获得此结果 {tag1 | tag2 | tag3}

2 个答案:

答案 0 :(得分:1)

听起来this question可能是相关的。但是,这应该做你想要的:

-- Table structure:
-- post(_id_), tag (_id_, tag), post_tag(post*, tag*)

SELECT post.id,
    CONCAT('{', GROUP_CONCAT(distinct tag.tag order by tag.tag separator '}{'), '}') AS tags
FROM post
JOIN post_tag ON post.id = post_tag.post
JOIN tag ON post_tag.tag = tag.id
GROUP BY post.id

返回:

+----+--------+
| id | tags   |
+----+--------+
|  1 | {A}{B} |
|  2 | {B}{C} |
|  3 | {C}    |
+----+--------+

确保包含GROUP BY子句。我确实添加了外键引用,但我不确定MySQL是否实际使用它们。

答案 1 :(得分:0)

假设您在PHP中编写此查询以在MySQL中执行,您可以将SQL括在双引号中,这将导致变量被解析:

$sql = " SELECT p.ID ... taxonomy, $someVariable GROUP_CONCAT ... ";

或(首选IMO)使用单引号并将其连接(也可以更容易地将其内联清除,如此处所示)

$sql = ' SELECT p.ID ... taxonomy, ' . mysql_real_escape_string($someVariable) . ' GROUP_CONCAT ... ';