我想像这样更新我的表:
Update MyTable
SET value = 1
WHERE game_id = 1,
x =-4,
y = 8
SET value = 2
WHERE game_id = 1,
x =-3,
y = 7
SET value = 3
WHERE game_id = 2,
x = 5,
y = 2
Run Code Online (Sandbox Code Playgroud)
我可以做一个foreach()但是会发送超过50个单独的查询,这非常慢.这就是我希望将它组合成一个大查询的原因.
(我确实为每一行使用了一个id,但game_id,x和y的组合是我用来识别我需要的行的方法.)
这里描述的codeIgniter中的update_batch()函数: 使用CodeIgniter更新批处理 是有帮助的并且几乎完美但它只允许1个单个where子句,你不能(据我理解并尝试过)输入一个包含多个where子句的数组.
我也检查了这个问题: MYSQL UPDATE SET在同一列但有多个WHERE子句 但它只允许多行更新只包含一个不同的WHERE子句,我需要多个WHERE子句!:)
Anwsers可以使用简单的SQL,也可以使用php(和CodeIgniter)或以不同的方式使用.我想以任何可能的方式解决这个问题;)
我真的可以使用建议/帮助!= d
我创建的应用程序,我想知道如何我应该/可以处理闰秒。我将尝试用(希望如此)简单的示例情况来描述问题。在这种简单的情况下,您可以很容易地争辩说,每 +- 1.5 年多一秒的等待时间可能无关紧要,但我仍然会睡得更好,因为知道它在“所有”情况下都能正常工作/以我想要的方式工作:)
(我们不考虑任何延迟,因此当用户按下按钮时,它会立即“发生”)
你有一个游戏,你可以在其中创建士兵。
day 1 - 23:58:30110s稍后创建士兵。通过正常的“日期时间计算”,您的应用程序最终会得到day 2 - 00:00:20.现在day 1和day 2-->之间恰好有一个闰秒23:59:60。按照这种方法,用户实际上将等待111s他的士兵。
我更喜欢使用 Unix 时间戳。这样,您只需添加110s到当前时间(以秒为单位)。但据我所知,这也没有考虑闰秒。你最终还是会111s在实际时间里等待。
我应该怎么做才能确保用户或程序只等待它应该等待的时间?
是否有考虑闰秒的常用时间戳?
我应该总是检查闰秒是否发生? (可能会造成很多cpu电源的“腰”?)
编辑:我主要使用 Javascript (Node.js),但 C、php 或 Python 中的示例也可以正常工作!
我想知道是否可能以及如何将鼠标滚轮/滚动事件(用户的滚动尝试)从header转移到container.
我有以下示例情况:
+------------+ +------------+|
| header | | header ||
+------------+ +------------+|
| || | ||
| || | ||
| container || | container ||
| || | ||
| || | ||
+------------+ +------------+|
situation 1 situation 2
Run Code Online (Sandbox Code Playgroud)
情境2是"传统"设置,其中可以滚动整个页面.当光标悬停标题时(即使它可能已修复),滚动尝试将传递给body/html.由于容器溢出body/html,如果用户旋转他/她的鼠标滚轮,容器将移动/滚动.由于标题是固定的,它将保持在相同的位置.
情况1是我的测试设置.容器的内容溢出容器,这将导致容器显示滚动条.现在我希望容器在用户的光标悬停在标题上并且用户旋转他/她的滚轮时也滚动.
情况的一个方面1
我创造了另一个小提琴来展示我的进步,这可能是解决方案,但我无法让它发挥作用.这可能会激励其他人获得实际的解决方案:)我得到错误:( (index):69 Uncaught InvalidStateError: Failed to execute 'dispatchEvent' on 'EventTarget': The event is already being dispatched.
现在它只是chrome中的滚动事件)
这与我预期的解决方案最接近, …
我有以下例子.
<div class="parent">
<div data-id="5"></div>
<div data-id="2"></div>
<div data-id="3"></div>
<div data-id="1"></div>
<div data-id="4"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我想按升序(1,2,3,4,5)订购这些div.我通常会做一个循环并将div添加到parentdiv中.然而,这意味着我总是对dom进行5次更改(无论div的顺序如何),每个div一次.
但是,你可以使用.insertBefore()方法只需2次更改即可正确排序div !
5,2,3,1,4
Insert 1 before 2
5,1,2,3,4
Insert 5 behind 4 (using .insertBefore() and .nextSibling)
1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)
问题1通过仅对DOM进行2次更改,我假设回流次数较少,使"2次更改"排序操作比"5次更改"操作更快.它是否正确?
问题2什么样的方法/算法能够找出只做插入1 before 2和5 behind 4?
问题3(奖金)这个"优化"算法是否会随着项目数量的增加而更快?范围10 - 100 - 1.000 - 10.000 - 100.000
也许澄清一下:我不是在寻找一种以最佳方式找出顺序(1,2,3,4,5)的方法.在某一点我知道订单,但我想再次比较div的顺序,然后THEN计算出最少的操作量.
javascript ×3
html ×2
algorithm ×1
c ×1
css ×1
dom ×1
jquery ×1
leap-second ×1
mysql ×1
php ×1
sorting ×1
sql ×1
sql-update ×1
time ×1