小编Phr*_*ogz的帖子

WHERE col1,col2 IN(...)[使用复合主键的SQL子查询]

给定foo具有复合主键的表(a,b),是否存在用于编写查询的合法语法,例如:

SELECT ... FROM foo WHERE a,b IN (SELECT ...many tuples of a/b values...);
UPDATE foo SET ... WHERE a,b IN (SELECT ...many tuples of a/b values...);
Run Code Online (Sandbox Code Playgroud)

如果这是不可能的,并且您无法修改架构,那么如何执行上述等效操作?

我还将在这里为这些别名的搜索命中设置术语"复合主键","子选择","子选择"和"子查询".

编辑:我对标准SQL的答案感兴趣,以及那些适用于PostgreSQL和SQLite 3的答案.

sql subquery composite-primary-key

36
推荐指数
3
解决办法
4万
查看次数

为什么这个函数包含在括号中,后跟括号?

我一直在javascript源码中看到这一点,但我从未真正找到使用此构造的真正原因.为什么需要这个?

(function() {

    //stuff

})();
Run Code Online (Sandbox Code Playgroud)

为什么这样写的?为什么不单独使用stuff而不是在函数中使用?

编辑:我知道这是定义一个匿名函数然后调用它,但为什么

javascript function

36
推荐指数
2
解决办法
4058
查看次数

带有层次结构中可选元素的XPath

正如在这个Stack Overflow回答中想象的那样,您需要选择一个特定的表,然后选择它的所有行.由于HTML的允许性,以下所有三个都是合法标记:

<table id="foo"><tr>...</tr></table>
<table id="foo"><tbody><tr>...</tr></tbody></table>
<table id="foo"><tr>...</tr><tbody><tr>...</tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

您担心嵌套在表中的表,因此不希望使用类似XPath
table[@id="foo"]//tr.

如果您可以将所需的XPath指定为正则表达式,它可能类似于:
table[@id="foo"](/tbody)?/tr

通常,如何指定允许选择器层次结构中的可选元素的XPath表达式?

要清楚,我不是要解决现实问题或选择特定文档的特定元素.我在寻求解决一类问题的技巧.

html xpath

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

未关闭的SVG路径似乎已关闭

我正在用d3写一些东西,我遇到了一个奇怪的问题.闭合的路径以'Z'字符结尾,但无论是否包含Z,我所做的每条路径都会关闭(和填充).即使与从规范中复制的示例单独隔离也会发生这种情况 例如:

<svg>
    <path d="M 40 60 L 10 60 L 40 42.68 M 60 60 L 90 60 L 60 42.68"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

我很困惑,问题可能是什么.我很感激任何见解.

javascript svg path d3.js

34
推荐指数
2
解决办法
1万
查看次数

将两个或多个Canvas元素与某种混合组合在一起

是否可以将2个单独的canvas元素的内容组合到一个canvas元素中?

像Photoshop中的"Flattening"两个或更多层一样......?

我可以想到一个方向,但我不太确定.我以.png的形式导出canvi(lol)的内容,然后让第三个canvas元素用某种混合算法(xor,blend,negative等)绘制两个图像.

html5 canvas

33
推荐指数
2
解决办法
3万
查看次数

将字符串转换为数字,将null或空字符串解释为0

我有一个Postgres表,其中包含一个带有数值的字符串列.我需要将这些字符串转换为数字的数字,但我需要将两个NULL值以及空字符串解释为0.

我可以将空字符串转换为空值:

# select nullif('','');
 nullif 
--------

(1 row)
Run Code Online (Sandbox Code Playgroud)

我可以将null值转换为0:

# select coalesce(NULL,0);
 coalesce 
----------
        0
(1 row)
Run Code Online (Sandbox Code Playgroud)

我可以将字符串转换为数字:

# select cast('3' as float);
 float8 
--------
      3
(1 row)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试结合这些技术时,我会遇到错误:

# select cast( nullif( coalesce('',0), '') as float);
ERROR:  invalid input syntax for integer: ""
LINE 1: select cast( nullif( coalesce('',0), '') as float);

# select coalesce(nullif('3',''),4) as hi;
ERROR:  COALESCE types text and integer cannot be matched
LINE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql syntax

32
推荐指数
3
解决办法
7万
查看次数

仅使用HTML和/或CSS的曲线

我需要在HTML中添加连接图表节点的曲线.我想使用HTML和/或CSS创建它们.即使并非所有浏览器都支持我需要的功能(特别是不关心IE8及以下),我对CSS3也没问题.以下是我可以使用的解决方案:

  • canvas或svg - 不喜欢它,因为当我有数百甚至数千个这些对象漂浮在我的好节点之间时,我必须处理浏览器差异而不确定性能
  • image - 我需要一些荒谬的图像来处理所有可能的曲线,并且在放大和缩小时图像根本无法很好地缩放
  • div有一个css border-radius和另一个div,它覆盖了我们不想要的行部分 - 不担心IE8及以下不支持这个,但这是一个丑陋的黑客,我不能得到生成的曲线任何像背景或其他线条重叠的东西.我可以吗?

我错过了哪些选择?是否可以使用一个只有1个角可见的边界半径的div(并且可以在IE8及以下的所有浏览器上工作)?

css html5 css3

31
推荐指数
2
解决办法
4万
查看次数

有没有办法让css字母间距:0.5 px?

我遇到了问题,我需要让用户轻松阅读文本,所以我使用1 px的字母间距,但它看起来很难看,所以我想我会用半像素这样0.5px,但它不起作用,我尝试使用em属性,但没有完成任务.

那么有没有办法让字母间距为半像素(如果可能的话,跨浏览器解决方案)

css letter-spacing

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

迭代时安全地从数组表中删除项目

这个问题类似于如何在删除键但是明显不同的情况下安全地迭代lua表.

摘要

给定一个Lua数组(具有1从中开始的顺序整数的键的表),迭代这个数组并删除一些条目的最佳方法什么?

真实世界的例子

我在Lua数组表中有一组带时间戳的条目.条目总是添加到数组的末尾(使用table.insert).

local timestampedEvents = {}
function addEvent( data )
  table.insert( timestampedEvents, {getCurrentTime(),data} )
end
Run Code Online (Sandbox Code Playgroud)

我需要偶尔遍历此表(按顺序)并处理并删除某些条目:

function processEventsBefore( timestamp )
  for i,stamp in ipairs( timestampedEvents ) do
    if stamp[1] <= timestamp then
      processEventData( stamp[2] )
      table.remove( timestampedEvents, i )
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,上面的代码方法打破了迭代,跳过了一些条目.有没有比手动走索引更好(更少打字,但仍然安全)的方法:

function processEventsBefore( timestamp )
  local i = 1
  while i <= #timestampedEvents do -- warning: do not cache the table length
    local …
Run Code Online (Sandbox Code Playgroud)

lua

31
推荐指数
4
解决办法
4万
查看次数

在Webkit浏览器中错误地计算SVG高度

我有一个特定于Webkit浏览器的问题(Safari和Chrome,在Mac和PC上).

我正在使用Raphael JS渲染SVG数据并使用响应式布局来使用浏览器窗口缩放SVG.使用JQuery将SVG设置为100%宽度/高度.包含元素的宽度设置为百分比,以便在页面调整大小时保持布局的比率.

麻烦是Webkit没有正确计算高度,它在SVG图像周围增加了额外的像素(有时数百个); 这打破了布局.

如果您在Webkit浏览器中打开以下链接,您将看到绿色的额外像素区域.如果您在safari中使用开发人员inpspector,您将看到SVG的报告大小大于显示的SVG.

http://e-st.glam.ac.uk/simulationgames/svgheightbug/index.html

如果您在Firefox或Opera中打开链接,您将看到它应该工作的布局(这里的绿色是由我故意设置的边距引起的).

IE8有一个类似的问题,使用高度:自动修复,但这在Webkit中不起作用.

还有其他人有这个问题吗?有人有解决方案吗?

我认为它可能是一个Webkit错误(已经检查过夜间构建,问题仍然存在),但在我记录之前我想检查以确保没有其他人先解决问题.

css svg webkit

30
推荐指数
2
解决办法
4万
查看次数