My MySql Table如下所示:
| id | picID | name_Gina | name_Tom | name_Liz |
|----|------------|-----------|----------|----------|
| 1 | DSC057.jpg | 1 | 0 | 0 |
| 2 | DSC622.jpg | 1 | 0 | 1 |
| 3 | DSC624.jpg | 0 | 1 | 0 |
| .. | .. | .. | .. | .. |
等等。 name_prefixes是我与某个pic相关联的人员。现在我想显示照片,例如。 DSC622.jpg并回应Gina和Liz在这张照片上的标记。所以我需要列名(name_Gina& name_Liz),其中picID = 1?
喜欢这样:
SHOW COLUMNS FROM $table LIKE 'name_%' WHERE id = $id
任何人都可以给我一个提示吗? 也许我应该使用两个表,一个使用Names,另一个使用picID并将它们连接在一起?
答案 0 :(得分:2)
您应该真正将数据库设计更改为此类
pictures table
--------------
id
name
users table
-----------
id
name
birth_date
user_pictures table
-------------------
picture_id
user_id
user_pictures
表将包含每个用户图片关系的记录。
示例数据
pictures
id name
1 dsc_01.jpg
2 dsc_04.jpg
users
id name
1 tom
2 jane
user_pictures
picture_id user_id
1 1
1 2
2 2
然后,您可以选择与此相关的特定用户的所有照片
select p.name
from pictures p
join user_pictures up on up.picture_id = p.id
join users u on up.user_id = u.id
where u.name = 'tom'