我想存储 100 个网址和 100 个 anchor 文本,它们在形成链接时连接在一起,例如 url_01/anchor_01,然后另一组是 url_02/anchor_02。
因此,我创建了 100 个网址字段和 100 个 anchor 字段,将我的数据与其他客户值存储在一行中。
使用一组后,我想将其从数据库中删除,现在我正在考虑添加一个计数器来识别我们必须采用哪个组合:
$count=$all_anchors['count'];
$anchor=$all_anchors['anchor_<?php echo $count; ?>'];
echo $anchor;
我知道这适用于标准 PHP/HTML,例如:
<?php $count=$all_anchors['count']; ?>
<a href="http://www.website.com/?id=<?php echo $count; ?>">anchor</a>
但是无法识别数据库中的字段。
希望有人可以帮助我,重要的是我知道 ID,例如与该值对应的数字,因为我想在使用后清空它。
最佳答案
这是一个糟糕的设计,无法扩展,为了回答你的问题,你必须循环遍历每一列以匹配你要查找的 URL 值(当然你知道你要查找的行 ID) 。 喜欢
UPDATE TABLE SET col1=if(col1='url_01','',col1),col2=if(col2='url_01','',col2) ... where id=<row_id>
等等..
对于 anchor 标记也是如此。
推荐:
您应该创建三个非规范化表:
1.urls:记录所有可用的url
id url created_at
1 url_001 2017-06-10
2 url_002 2017-06-10
2. anchor :记录所有可用的 anchor
id anchor created_at
1 anc_001 2017-06-10
2 anc_002 2017-06-10
3. url_anchors:映射表,您可以在其中附加任何带有任何 anchor 标记的 URL(无需再次重复相同的 URL 或 anchor 值)以及 customer_id。建议不要进行物理删除,而是如果不需要进一步将行(is_deleted)标记为已删除。(索引url_id和anchor_id)
id url_id anchor_id customer_id created_at is_deleted deleted_at
1 1 1 tom 2017-06-10 0 NULL
1 1 2 tom 2017-06-10 0 NULL
1 2 2 tom 2017-06-10 1 2017-06-10
搜索查询:
update
urls u
join url_anchors ua on u.id=ua.url_id
join anchors a on a.id=ua.anchor_id
set
is_deleted=1,
deleted_at=now()
where
u.url=<searched url>
and a.url=<searched anchor>
或删除查询(不推荐):
delete
ua
from
urls u
join url_anchors ua on u.id=ua.url_id
join anchors a on a.id=ua.anchor_id
where
u.url=<searched url>
and a.url=<searched anchor>
关于php - 识别具有200个字段的行中的一个字段(mysql数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44469136/