在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} ?
答案 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 ... ';