php - MySQL 使用 RegEx 更新/选择列

标签 php mysql regex

我在互联网上搜索了选择与正则表达式模式匹配的每一列的答案。我没有找到,或者也许我找到了,但我不明白,因为我是数据库新手。这是我试图运行的 sql:

UPDATE `bartosz` SET 'd%%-%%-15'=1

(我知道这样不好)

我有这样的专栏: ID | 15 年 1 月 1 日 | d2-1-15 | d2-1-15 | d3-1-15 | d3-1-15 | d4-1-15 ...(5 年,每个月,每天)

有没有办法选择 2015 年的所有列? 我知道我可以在 php 中循环它,所以 sql 看起来像:

UPDATE `bartosz` SET 'd1-1-15'=1, 'd1-1-15'=1, 'd3-1-15'=1 [...]

但它会很长。

最佳答案

强烈考虑改变你的方法。从技术上讲,拥有一个包含 2000 列的表是可能的,但您使用 MySQL 的方式并未充分利用可用功能(例如 DATE 处理)。在大多数用例中,下表结构将提供更好的灵活性和扩展性。

查看具有 key=>value 属性的表。

id   employee    date         units
1    james       2015-01-01   2
2    bob         2015-01-01   3
3    james       2015-01-02   6
4    bob         2015-01-02   4

通过上述内容,可以编写查询而无需插入数百个列名。它还可以轻松扩展到 5 年以上,而无需更改表。使用DATE列类型,以便您可以轻松地按日期范围查询。另请学习如何使用INDEX es,这样您就可以在员工和日期字段上放置唯一索引以防止重复。

关于php - MySQL 使用 RegEx 更新/选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809464/

相关文章:

用于删除日期模式字符串中年份的 Java 正则表达式

Java模式不理解

php - Api 平台 DateTimeNormalizer 不允许为空

php - 在不使用全局变量的情况下在 PHP 函数之间共享变量

php - 为什么这不会出错

php - FONT 不显示某些字符

Mysql - 如何从表中获取唯一的 dd-mm-YY?

python - 删除 python 中 () 和 [] 之间的文本,但有一些异常(exception)

php - Laravel Eloquent/SQL - 在数据库中搜索关键字

php - 使用 jQuery .ajax 作为投票脚本。投票成功后如何更新MySQL DB?