MySQL存储和搜索字符串

标签 mysql string store

我目前正在开发自己的博客系统。目前,当您创建新帖子时,您可以选择将其归档到您自己选择的类别。

目前,我将类别作为 VARCHAR 值存储在 mysql 数据库中。例如,如果用户选择了 ID 为 2、4 和 8 的类别,则该字段将包含 2、4、8。

要检索 ID 为 4 的类别的博文,我使用:

SELECT col FROM table WHERE LOCATE(',4,', CONCAT(',',col,','))

有人告诉我,就良好的数据库结构而言,用小数点逗号分隔的值是不行的(非常糟糕)!

谁能给我提供一个好的方法/技术,使之成为最有效的方法?

提前致谢

最佳答案

一个灵活而健壮的设置,在 SO 中多次发布:

POSTS
id
name
text

CATEGORIES
id 
name

POST_CATEGORIES
post_id
category_id

当前查询的位置:

SELECT p.id, p.name, p.text
FROM posts p
JOIN post_categories pc
ON pc.post_id = p.id
AND pc.category_id = 4;

关于MySQL存储和搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419130/

相关文章:

php - 建立数据库连接时出错 - WP 主机更改了密码

mysql - 如何在 WHERE 子句中编写带有 IF 的查询?

java - 在java中修剪日语字符串的问题

string - 创建一个与另一个相同大小的字符串

c++ - 计算 RLE 压缩字符串所需的空间

ios - 在本地安全存储应用程序购买数据

mysql - 困惑,MySQL 选择两个表 - 如果缺少一个表,则返回另一个表

python - 将字典存储在文件中供以后检索

grid - ExtJS 4 - 动态模型字段

php - mysql 查询不起作用(同时运行两个 INSERT)