2017-09-02 65 views
0

我有一个问题显示主题标签,也就是我想要显示从这样的表“上岗”井号标签:从数据库

| id | author | hashtags | 
|:------------|-------------:| 
| 1 | aaaa | #aaa, #bbbb | etc... 
| 2 | bbbb | #ccc, #addd | 
| 3 | cccc | #aee, #ffff | 

的问题是,我想获得这样的事情(只记录) :

When I write a: #aaa, #addd, #aee 
When I write b: #bbbb 
etc... 

我该如何得到只有那些以字母开头(即使在同一个字段中)的hashtags才会出现的效果?我正在考虑正则表达式。预先感谢您的帮助。

+0

逗号分隔值使得很多困难查询..我劝你一定要规范表。 –

回答

1

你需要做一些改动:

  • 移动井号标签列到新表,并存储在不同行不同的主题标签(与帖子ID为外键),即标准化表
  • 使用LIKE运算符在新表上查询,例如

    SELECT hashtag 
    FROM post_hashtag 
    WHERE post_id = <id> 
    AND hashtag LIKE '%#a%';` 
    
+0

有没有必要将'#'存储在散列表中。 –

+0

我知道,我知道,但我想避免这个解决方案 – Trawlr

+0

它在输出中是必需的,所以我们可以用'#'前缀每个结果或将它存储在表 –