在mysql声明里面回声?
问题描述:
是否可能在MySQL声明中回显?在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',
这是可能得到这样的结果{标记1 |标签2 |标签3}?
答
这听起来像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是否实际使用它们。
答
假设你正在写在PHP这个查询在MySQL执行,你可以附上SQL在双引号,这将导致变量解析:
$sql = " SELECT p.ID ... taxonomy, $someVariable GROUP_CONCAT ... ";
或(首选IMO)使用单报价并连接它(也使得它更容易清洁它内联,如下所示)
$sql = ' SELECT p.ID ... taxonomy, ' . mysql_real_escape_string($someVariable) . ' GROUP_CONCAT ... ';
+0
感谢您的回复先生,但罗斯采取了什么林寻找感谢先生 – 2012-02-08 14:19:53
哇谢谢先生它的作品像一个魅力谢谢你非常非常有趣。我承认我有困难在查询中非常感谢你:) – 2012-02-08 14:14:54
没问题,我今天没有听说过'GROUP_CONCAT',所以我也学到了一些新的东西:) – Ross 2012-02-08 14:17:44
哇,这样的乐趣先生,我们都学到了这个话题再次感谢您先生,让我的一天欢呼! :) – 2012-02-08 16:59:04