是否可能在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}?
是否可能在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 ... ';
感謝您的回覆先生,但羅斯採取了什麼林尋找感謝先生 – 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