小编Der*_*ler的帖子

如何在没有输入数据时阻止GROUP_CONCAT创建结果?

给出以下MySQL查询:

SELECT
  `show`.`id`
  , GROUP_CONCAT( `showClips`.`clipId` ORDER BY `position` ASC ) AS 'playlist'
FROM
  `show`
  INNER JOIN
    `showClips`
      ON
        ( `show`.`id` = `showClips`.`showId` )
;
Run Code Online (Sandbox Code Playgroud)

我想从数据库中检索所有"节目"的列表,包括包含"剪辑"的ID.

只要表中有条目,这样就可以正常工作show.对于这个问题,我们假设所有表都是空的.

GROUP_CONCAT将返回NULL并因此强制一行进入结果(仅包含NULL值).

然后我的应用程序会认为存在一个显示/结果.但结果将无效.这当然可以检查,但我觉得这可以(并且应该)在查询中已经被阻止了.

mysql group-concat

20
推荐指数
2
解决办法
8679
查看次数

在慢速连接上使用vim的提示?

我使用vim来缓慢连接,这有点痛苦.我能用vim做些什么来缓解疼痛吗?

vi vim ssh

19
推荐指数
6
解决办法
8428
查看次数

用户可以成为Active Directory中多个组织单位(OU)的成员吗?

用户可以成为Active Directory中多个组织单位(OU)的成员吗?此外,Microsoft是否提供了有关如何创建OU以及其属性的标准格式?

我在维基百科上发现了这个:

但是,组织单位只是管理员的抽象,不能作为真正的容器; 底层域的操作就好像对象都是在一个简单的平面文件结构中创建的,没有任何OU.例如,不可能在两个单独的OU中创建具有相同用户名的两个用户帐户,例如"fred.staff-ou.domain"和"fred.student-ou.domain".

ldap active-directory

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

这是bash脚本的有效自我更新方法吗?

我正在编写一个已经变得如此复杂的脚本我想要包含一个简单的选项来将其更新到最新版本.这是我的方法:

set -o errexit

SELF=$(basename $0)
UPDATE_BASE=http://something

runSelfUpdate() {
  echo "Performing self-update..."
  # Download new version
  wget --quiet --output-document=$0.tmp $UPDATE_BASE/$SELF
  # Copy over modes from old version
  OCTAL_MODE=$(stat -c '%a' $0)
  chmod $OCTAL_MODE $0.tmp
  # Overwrite old file with new
  mv $0.tmp $0
  exit 0
}
Run Code Online (Sandbox Code Playgroud)

该脚本似乎按预期工作,但我想知道是否可能有这种方法的警告.我很难相信脚本可以覆盖自己而不会产生任何影响.

为了更清楚,我想知道,如果,也许,bash会逐行读取和执行脚本,之后mv,exit 0可能是新脚本中的其他内容.我想我记得Windows的行为和.bat文件一样.

更新:我的原始片段不包括set -o errexit.根据我的理解,这应该让我免受由此引起的问题wget.
此外,在这种情况下,UPDATE_BASE指向版本控制下的位置(以缓解问题).

结果:根据这些答案的输入,我构建了这个修订的方法:

runSelfUpdate() {
  echo "Performing self-update..."

  # Download new version
  echo -n "Downloading …
Run Code Online (Sandbox Code Playgroud)

bash

15
推荐指数
1
解决办法
7120
查看次数

为什么git一直在弄乱我的行尾?

我在Windows上,我已core.autocrlf禁用:

$ git config core.autocrlf; git config --global core.autocrlf
false
false
Run Code Online (Sandbox Code Playgroud)

现在,我认为,git不会破坏任何行结尾,但我的仓库中的一些文件会导致问题.

我刚刚克隆了一份repo的新副本,git已经告诉我有没有分期更改.当我git diff -R,我可以看到CRLF行结尾已添加到文件中:

diff --git b/nginx-1.11.1/contrib/geo2nginx.pl a/nginx-1.11.1/contrib/geo2nginx.pl
index bc8af46..29243ec 100644
--- b/nginx-1.11.1/contrib/geo2nginx.pl
+++ a/nginx-1.11.1/contrib/geo2nginx.pl
@@ -1,58 +1,58 @@
-#!/usr/bin/perl -w
-
-# (c) Andrei Nigmatulin, 2005
+#!/usr/bin/perl -w^M
+^M
+# (c) Andrei Nigmatulin, 2005^M
Run Code Online (Sandbox Code Playgroud)

我不明白这些行结尾的来源,但我也无法"恢复"这种变化.当我再次签出文件时,它仍将在以后修改:

$ git checkout -f nginx-1.11.1/contrib/geo2nginx.pl
$ git status
On branch dev
Your branch is up-to-date with 'origin/dev'.
Changes not staged for commit:
  (use "git add <file>..." to update what …
Run Code Online (Sandbox Code Playgroud)

windows git

13
推荐指数
1
解决办法
3248
查看次数

如何在localhost上建立与websocket的安全连接?

我们有一个应用程序,我们在POS终端上运行,它应该从运行在同一台机器上的应用程序接收数据,同时显示来自通过HTTPS加载的远程站点的内容.

要从本地应用程序接收数据,我们希望使用websockets,到目前为止工作正常.但是,当我们显示的站点通过HTTPS加载时,还需要加密websocket连接.

因为我们无法获得适当的证书localhost,所以我们只使用自签名证书.但Chrome不会连接到使用自签名证书的websocket.

我们如何解决这个问题?我们不能使用未加密的websocket,我们不能使用自签名证书加密,我们无法获得签名证书localhost.我错过了什么选择?

javascript https google-chrome websocket

12
推荐指数
1
解决办法
4577
查看次数

如何让EnumWindows列出所有窗口?

我假设,我问的实际上应该是默认值,但我遇到了一些我不理解的行为.

#include "stdafx.h"

using namespace std;

BOOL CALLBACK enumWindowsProc(
  __in  HWND hWnd,
  __in  LPARAM lParam
) {
  if( !::IsIconic( hWnd ) ) {
    return TRUE;
  }

  int length = ::GetWindowTextLength( hWnd );
  if( 0 == length ) return TRUE;

  TCHAR* buffer;
  buffer = new TCHAR[ length + 1 ];
  memset( buffer, 0, ( length + 1 ) * sizeof( TCHAR ) );

  GetWindowText( hWnd, buffer, length + 1 );
  tstring windowTitle = tstring( buffer );
  delete[] buffer;

  wcout << hWnd …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi

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

为什么我的TB_INSERTBUTTON消息导致comctl32抛出?

我正在尝试在Internet Explorer的工具栏中添加一个额外的按钮.

我假设实现是直截了当的,我目前正在使用此代码:

TBBUTTON buttonToAdd;
ZeroMemory( &buttonToAdd, sizeof( TBBUTTON ) );
buttonToAdd.iBitmap = 1;
buttonToAdd.idCommand = 1;
buttonToAdd.fsState = TBSTATE_ENABLED;
buttonToAdd.fsStyle = BTNS_BUTTON|BTNS_AUTOSIZE;

LRESULT insertButtonResult = SendMessage( hWndToolbar, TB_INSERTBUTTON, 0, (LPARAM)&buttonToAdd );
Run Code Online (Sandbox Code Playgroud)

发送邮件时,Internet Explorer将在90%的时间内崩溃(10%的时间,我在工具栏上有一个有点破坏的按钮),但有以下异常:

Unhandled exception at 0x000007FEFB97DDFA (comctl32.dll) in iexplore.exe: 0xC000041D: An unhandled exception was encountered during a user callback.

鉴于结果不一致,我假设某种内存布局问题.所以我尝试发送TB_INSERTBUTTONA(我的应用程序默认为TB_INSERTBUTTONW),但这对问题没有影响.

我也尝试了我的应用程序的32和64版本,两者都有相同的结果.

我看了一下iexplore.exe这个看起来像这样的callstack :

comctl32.dll!CToolbar::TBInputStruct(struct _TBBUTTONDATA *,struct _TBBUTTON const *)   Unknown
comctl32.dll!CToolbar::TBInsertButtons(unsigned int,unsigned int,struct _TBBUTTON *,int)    Unknown
comctl32.dll!CToolbar::ToolbarWndProc(struct HWND__ *,unsigned int,unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ winapi managed-c++

10
推荐指数
1
解决办法
512
查看次数

在本地捕获异常的“抛出”。为什么这很糟糕?

我有一段代码,看起来像这样:

try {
  if( !request.body || !request.body.device ) {
    throw new FooError( "missing 'device'" );
  }
  if( !request.body.device.type ) {
    throw new BarError( "missing 'device.type'" );
  }
  if( request.body.device.type != "ios" ) {
    throw new BazError( "unexpected 'device.type'" );
  }
} catch( error ) {
  // handle error and communicate message to the user
}
Run Code Online (Sandbox Code Playgroud)

WebStorm 突出显示了 3 个throw术语并给出了以下解释:

在本地捕获异常的“抛出”

此检查报告任何 JavaScript throw语句的实例,其异常总是通过包含try语句来捕获。使用throw语句作为“转到”来更改本地控制流可能会造成混淆。

我不明白这个道理。为什么这可能会令人困惑,什么是不那么令人困惑的选择?

javascript webstorm

10
推荐指数
0
解决办法
5258
查看次数

如何在Debian上启用AUFS?

当我尝试通过以下方式安装docker时:

curl -sSL https://get.docker.com/ | sh
Run Code Online (Sandbox Code Playgroud)

我收到消息:

警告:linux-image-extra-virtual软件包不支持当前内核.我们没有AUFS支持.考虑安装软件包linux-image-virtual kernel和linux-image-extra-virtual以支持AUFS.

但是,Debian Jessie似乎不存在任何包:

# apt-get install linux-image-virtual linux-image-extra-virtual
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-image-virtual
E: Unable to locate package linux-image-extra-virtual
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

debian docker gitlab-ci

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