小编Dex*_*Dex的帖子

使用每个单独行的多个"where"子句更新多行

我想像这样更新我的表:

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,xy的组合是我用来识别我需要的行的方法.)

这里描述的codeIgniter中的update_batch()函数: 使用CodeIgniter更新批处理 是有帮助的并且几乎完美但它只允许1个单个where子句,你不能(据我理解并尝试过)输入一个包含多个where子句的数组.

我也检查了这个问题: MYSQL UPDATE SET在同一列但有多个WHERE子句 但它只允许多行更新只包含一个不同的WHERE子句,我需要多个WHERE子句!:)

Anwsers可以使用简单的SQL,也可以使用php(和CodeIgniter)或以不同的方式使用.我想以任何可能的方式解决这个问题;)

我真的可以使用建议/帮助!= d

mysql sql sql-update

20
推荐指数
1
解决办法
3万
查看次数

如何在我的应用程序中正确处理闰秒

我创建的应用程序,我想知道如何我应该/可以处理闰秒。我将尝试用(希望如此)简单的示例情况来描述问题。在这种简单的情况下,您可以很容易地争辩说,每 +- 1.5 年多一秒的等待时间可能无关紧要,但我仍然会睡得更好,因为知道它在“所有”情况下都能正常工作/以我想要的方式工作:)


情况


(我们不考虑任何延迟,因此当用户按下按钮时,它会立即“发生”)

你有一个游戏,你可以在其中创建士兵。

  • 每个士兵需要 110 秒来创建。
  • 用户按下按钮创建 1 个士兵 day 1 - 23:58:30
  • 用户然后期望110s稍后创建士兵。通过正常的“日期时间计算”,您的应用程序最终会得到day 2 - 00:00:20.

现在day 1day 2-->之间恰好有一个闰秒23:59:60。按照这种方法,用户实际上将等待111s他的士兵。

我更喜欢使用 Unix 时间戳。这样,您只需添加110s到当前时间(以秒为单位)。但据我所知,这也没有考虑闰秒。你最终还是会111s在实际时间里等待。



我应该怎么做才能确保用户或程序只等待它应该等待的时间?

是否有考虑闰秒的常用时间戳?

我应该总是检查闰秒是否发生? (可能会造成很多cpu电源的“腰”?)

编辑:我主要使用 Javascript (Node.js),但 C、php 或 Python 中的示例也可以正常工作!

javascript php c time leap-second

6
推荐指数
1
解决办法
1564
查看次数

将鼠标滚轮/滚动事件从一个div转移到另一个div

我想知道是否可能以及如何将鼠标滚轮/滚动事件(用户的滚动尝试)从header转移到container.

我有以下示例情况:

+------------+     +------------+|
|   header   |     |   header   ||
+------------+     +------------+|
|           ||     |            ||
|           ||     |            ||
| container ||     | container  ||
|           ||     |            ||
|           ||     |            ||
+------------+     +------------+|
 situation 1        situation 2
Run Code Online (Sandbox Code Playgroud)

情况


情境2是"传统"设置,其中可以滚动整个页面.当光标悬停标题时(即使它可能已修复),滚动尝试将传递给body/html.由于容器溢出body/html,如果用户旋转他/她的鼠标滚轮,容器将移动/滚动.由于标题是固定的,它将保持在相同的位置.

情况1是我的测试设置.容器的内容溢出容器,这将导致容器显示滚动条.现在我希望容器在用户的光标悬停在标题上并且用户旋转他/她的滚轮时也滚动.

更新1

情况的一个方面1

情况2的一个小问题

更新2

我创造了另一个小提琴来展示我的进步,这可能是解决方案,但我无法让它发挥作用.这可能会激励其他人获得实际的解决方案:)我得到错误:( (index):69 Uncaught InvalidStateError: Failed to execute 'dispatchEvent' on 'EventTarget': The event is already being dispatched. 现在它只是chrome中的滚动事件)

更新3

与我预期的解决方案最接近, …

html javascript css jquery

5
推荐指数
2
解决办法
2461
查看次数

如何对DOM元素进行排序,从而触发最少量的回流?

我有以下例子.

<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 25 behind 4

问题3(奖金)这个"优化"算法是否会随着项目数量的增加而更快?范围10 - 100 - 1.000 - 10.000 - 100.000

也许澄清一下:不是在寻找一种以最佳方式找出顺序(1,2,3,4,5)的方法.在某一点我知道订单,但我想再次比较div的顺序,然后THEN计算出最少的操作量.

html javascript sorting algorithm dom

4
推荐指数
1
解决办法
469
查看次数

标签 统计

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