2012-02-08 62 views
1

是否可能在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}

回答

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是否實際使用它們。

+0

哇謝謝先生它的作品像一個魅力謝謝你非常非常有趣。我承認我有困難在查詢中非常感謝你:) – 2012-02-08 14:14:54

+1

沒問題,我今天沒有聽說過'GROUP_CONCAT',所以我也學到了一些新的東西:) – Ross 2012-02-08 14:17:44

+0

哇,這樣的樂趣先生,我們都學到了這個話題再次感謝您先生,讓我的一天歡呼! :) – 2012-02-08 16:59:04

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 ... '; 
+0

感謝您的回覆先生,但羅斯採取了什麼林尋找感謝先生 – 2012-02-08 14:19:53