草庐IT

id_colour

全部标签

php - 存储用户 ID 列表的最佳方法

我现在正在开发PHP/MySQL评级系统。为了让用户能够评分,用户必须登录。每个用户都有一个唯一的“UID”。网站上将有多个评级实例(在我的例子中,每个游戏都有一个),我需要一种有效的方法在MySQL行中存储UID列表(评级系统的每个实例在评级表中有一个MySQL行))来记录谁投票了。我在其他系统中看到列表存储在序列化的PHP数组中。每次用户投票时,序列化的数组都必须提取、反序列化、插入新的UID、重新序列化数组,并更新MySQL行。每次加载页面时,该列表都必须再次反序列化并检查查看该页面的用户是否已投票,以确保用户不会投票两次。这似乎有点低效和麻烦。MySQL是否有一个内置的列表函数

mysql - 使用自动递增 id 或 sha1 哈希的主键 mysql?

我可以将自动递增id字段作为我的主键或sha1哈希。我应该选择哪个?哪个在性能方面会更好? 最佳答案 在一些应用程序驱动的情况下,您希望使用全局唯一ID(UUID/GUID):您希望(或正在)使用分片策略来扩展写入。您不希望分片节点复制键。您希望能够安全地将数据从一个节点传输到另一个保留key。如果您想保持外键关系完整,这一点至关重要。您的应用程序还用于离线(家庭销售、家庭维修等),离线应用程序会定期同步与“真理之源”。您希望这些离线key是唯一的,而无需进行远程调用。否则,由您提出一种策略来重组键和关系的方式。使用自动增量策略并根

mysql - 在 sql 中选择具有重复多次的每个 ID 的最新日期的行

这个问题在这里已经有了答案:SQLselectonlyrowswithmaxvalueonacolumn[duplicate](27个答案)关闭5年前。我有一个表,其中每个ID重复3次。每行每个id前面都有一个日期。我想为日期最新的每个ID选择整行。此表中共有370列,我希望在选择该行时选择所有列。示例-IDNameDateMarks......1XY4/3/2017271fv4/3/2014981jk4/3/2016092RF4/12/2015872kk4/3/2009562PP4/3/2011763ee4/3/2001123ppp4/3/2003093lll4/3/201123答案

php - LAST_INSERT_ID() 如何在多用户环境下工作

先检查那个问题:Insertinganautomaticallygeneratedindexfromatableintoanothertable我知道这个函数“LAST_INSERT_ID()”执行所需的操作问题是:我在php脚本中使用它,如果某个用户在“table1”中插入数据,并且在他将“id”插入“table2”之前,另一个用户将数据插入“table1”...那么哪个“id”函数会检索第一个用户,他的id还是第二个用户“最后一个”的id??我希望检索用户自己“第一个用户”插入的“id”,如果没有实现怎么办? 最佳答案 LAST

php - 从 id=id 的其他表获取信息

所以我有2张table。train_informationuser_train_information当有人在表单中提交内容时。它被放入train_information表中,如下所示:现在,当人们登录并从选择器中选择火车时。他发生在数据库中:在另一个页面上,我希望用户看到他们在一段时间内选择的事物的完整列表。所以我运行一个查询:SELECT*FROMuser_train_informationWHEREuser_id=user_id;这显示了表格user_train_information但是可以在user_id=user_id的地方显示train_information吗?因为我希

mysql - 在一个 WHERE id IN () 语句中出现多个相同的 id

我有一个简单的查询,将字段的值增加1。现在我过去常常遍历所有id并为每个id触发一个查询,但现在事情变得有点资源繁重我想优化它。通常我会做UPDATEtableSETfield=field+1WHEREidIN(alltheidshere)但现在我遇到了一个问题,即id出现了两次(或更多,我无法在正手上知道)。如果查询如下所示,是否有办法让id4的查询运行两次:UPDATEtableSETfield=field+1WHEREidIN(1,2,3,4,4,5)谢谢,领主编辑:抱歉不够清楚。这里的id是一个autoinc字段,所以它都是唯一的ID。必须更新的id是间接来自用户的,所以我无法

php - 按 slug 查询还是按 id 查询?

通常,当我制作需要URL中的slug的应用程序时,我会通过数据库中的slug进行查询以获取内容(当然,在slug字段上有一个索引)。使用典型的LAMP堆栈(使用PHP和MySQL),从数据库的角度来看这样做的优点或缺点是什么?始终按id查询并简单地为slug创建某种排序或路由是否更有意义?此应用程序设计会带来任何安全问题吗?我正在使用cakePHP,特别是,所以如果有任何特定于蛋糕的答案,我们将不胜感激,但不是必需的。 最佳答案 如果您绝对肯定slug不会改变,则可以使用它。但是数字可能更快更安全(这是肯定的)。我刚刚在具有1000

mysqlbinarylog - TABLE_MAP_EVENT 中 table_id 的唯一性

我正在尝试手动解码mysql二进制日志ROW格式。每个更新/插入/删除事件之前都有一个TABLE_MAP_EVENT。此事件包含一个table_id。我正在使用这个id为这个表的列定义建立一个缓存。有时我在缓存中遇到错误,因为列信息不匹配。我目前无法在短期连接中重现这些问题,只能在发生二进制日志文件轮换的日志连接中重现。我怀疑table_id只对一个二进制日志文件是唯一的。有谁知道这个假设是否成立?有谁知道在哪里可以找到声明我对table_id的期望的文档?提前致谢比约恩 最佳答案 不,没有二进制日志表ID值的任何查找表。您必须根据

mysql - 将数据库中的 MySQL 父项和所有相关子项记录复制到新 ID

有没有一种简单的方法可以在不使用游标或外部脚本/代码的情况下严格使用SQL来复制父记录和所有相关的子记录?这是我所拥有的示例:categories==category_idcategory_nameparent_table==parent_record_idcategory_id...child_table1==child_table1_idparent_record_id...child_table2==child_table2_idparent_record_id...基本上,我需要精确复制所有这些数据。唯一会改变的字段是ID,因为它们都是auto_increment。基于上面的架

MyBatisPlus查询时报错,Unknow column ‘id‘ in ‘field list‘,怎么解决?

在使用MyBatisPlus的selectById()方法查询数据时,报出了一个错误:java.sql.SQLSyntaxErrorExceptionCreatebreakpointUnknowncolumn'id'in'fieldlist'atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)~[mysql-connector-java-8.0.22.jar:8.0.22]atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQ