小编Dav*_*ave的帖子

从SQL查询中删除重复项(不仅仅是"使用不同")

这可能很简单,这是我的查询:

SELECT DISTINCT U.NAME, P.PIC_ID
FROM USERS U, PICTURES P, POSTINGS P1
WHERE U.EMAIL_ID = P1.EMAIL_ID AND P1.PIC_ID = P.PIC_ID AND P.CAPTION LIKE '%car%';
Run Code Online (Sandbox Code Playgroud)

但是这只会删除一行具有相同的u.name和p.pic_id的重复项.我想要它,如果有任何重复的名称,它只是遗漏了其他行.这是一个奇怪的查询,但一般来说,如何将distinct应用于SELECT子句的单个列?

sql distinct duplicates

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

Liquibase存储Proc的管理

我读了liquibase的最佳实践,特别是用于管理存储过程:

管理存储过程:尝试为存储过程维护单独的更改日志,并使用runOnChange ="true".此标志强制LiquiBase检查变更集是否已修改.如果是这样,liquibase再次执行更改.

"为存储过程维护单独的更改日志"是什么意思?

我通常有一个与发布链接的更改日志目录.每个更改日志文件都包含在master.xml.

在遵循他们的建议时,目录结构会是什么?

liquibase

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

添加约束与自身冲突,即使它尚不存在

我正在向表中添加删除级联.该Clone表中有一栏DeviceID是一个外键Device表的DeviceID列.因此SQL脚本删除了原始FK约束,并尝试添加新的约束:

IF EXISTS
(
    SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_NAME = 'FK_Clone_Device'
)
BEGIN
    ALTER TABLE Clone
    DROP CONSTRAINT FK_Clone_Device
END

IF NOT EXISTS
(
    SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_NAME = 'FK_Clone_Device_Cascade'
)
BEGIN
    ALTER TABLE Clone
    ADD CONSTRAINT FK_Clone_Device_Cascade
    FOREIGN KEY (DeviceID) REFERENCES Device(DeviceID) ON DELETE CASCADE
END
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,我收到以下错误:

 The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Clone_Device_Cascade". The conflict occurred in database "DevelopmentDB", table "dbo.Device", column 'DeviceID'. …
Run Code Online (Sandbox Code Playgroud)

sql-server

7
推荐指数
1
解决办法
1940
查看次数

如何知道浏览器是否失去焦点

我已经尝试过使用onblur来解决我的问题,但这只是因为焦点从一个文本框变为另一个文本框或类似的东西.我正在为嵌入式浏览器编写一个有几个问题的网页.当浏览器被隐藏时,gif没有被隐藏,并且似乎它保留在缓存中.我的想法也许是有一种方法可以调用浏览器隐藏gif,因为焦点丢失了.在这种情况下,焦点类似于用户点击另一个窗口.这似乎超出了网络技术的范围,但我想我会问.

谢谢!

javascript focus onblur

6
推荐指数
0
解决办法
3017
查看次数

在mapDispatchToProps中绑定操作参数

我有一个提交按钮,将发送一个动作.操作的有效负载是将发送到API的发布数据.目前我使用bindActionCreatorsmapDispatchToProps:

const mapDispatchToProps = (dispatch) => ({
    actions:  bindActionCreators(FormActions, dispatch)
});
Run Code Online (Sandbox Code Playgroud)

然后在我的组件中,我绑定onClick到提交操作:

<input type="submit" onClick={() => this.props.actions.submit(this.props.postData)} />
Run Code Online (Sandbox Code Playgroud)

我不喜欢我必须给这个组件提供帖子数据mapStateToProps.我更愿意给组件一个已经将post数据绑定到submit函数的动作,所以它的用法如下所示:

<input type="submit" onClick={this.props.submit} />
Run Code Online (Sandbox Code Playgroud)

这可能吗?我无法访问该州mapDispatchToProps

reactjs redux react-redux

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

为什么这种LINQ IQueryable Performance for Pagination如此差劲?

List<Device> deviceList = GetDevices(); // these are loaded in memory already as a list

IQueryable<Device> IDevices = deviceList.AsQueryable<Device>();

deviceList = IDevices.Where(i => i.StatusID == 2).OrderBy(j => j.LastCommunicated).Skip(recordsToSkip).Take(pageSize).ToList();
Run Code Online (Sandbox Code Playgroud)

鉴于上面的代码,我在列表中查询了大约1000个设备.第三个声明很慢.如果已经加载到内存中,它不应该快吗?我理解在大多数情况下你会将整个查询应用于数据库调用,但在我的情况下,我已经将我的设备加载到内存中.第一和第二个电话非常快.

c# linq performance iqueryable

5
推荐指数
1
解决办法
1436
查看次数

Go 的堆接口如何工作?

在 Go 中,您可以这样实现堆:https://golang.org/src/container/heap/example_pq_test.go

您实现了sort.InterfacePop、 和Push,并且您已经拥有了一个优先级队列/堆。Pop在和Push实现的示例中,heap.Fix未调用该函数。我看到它heap.Init被调用了,所以我可以理解当时发生的一些堆化。但是,您可以推送和弹出项目,这会运行您自己的代码,并且会维护堆属性。

如果您在 init 之后推送或弹出项目而不调用heap.fix,那么如何维护堆属性?

这是示例的游乐场:https ://play.golang.org/p/wE413xwmxE

heap go

5
推荐指数
1
解决办法
2663
查看次数

如何使用 protobuf 3 支持补丁休息请求

我们经常有我们只想更新资源的子集字段的用例。所以如果我们有一个资源Person

type Person struct {
    Age int
    Name string
    Otherfield string
}
Run Code Online (Sandbox Code Playgroud)

假设调用客户端只想更新该Age字段。通常如何设置端点来处理这个问题?

我相信这应该通过PATCH请求来完成,只有字段被设置为有效负载的一部分,即:

{
    Age: 21
}
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于 proto3,因为据我所知,没有空字段,只有默认值。这在默认值有效的许多情况下不起作用。

protocol-buffers proto3

5
推荐指数
1
解决办法
3070
查看次数

GZipStream在写入FileStream时有效,但不能用于MemoryStream

如果压缩一些json文本,并使用FileStream我将其写入文件,我得到预期的结果.但是,我不想写入磁盘.我只想要压缩数据的内存流.

压缩为FileStream:

string json = Resource1.json;

using (MemoryStream input = new MemoryStream(Encoding.UTF8.GetBytes(json)))
using (FileStream output = File.Create(@"C:\Users\roarker\Desktop\output.json.gz"))
{
    using (GZipStream compression = new GZipStream(output, CompressionMode.Compress))
    {
        input.CopyTo(compression);
    }
}
Run Code Online (Sandbox Code Playgroud)

以上作品.下面,输出内存流的长度为10,并产生一个空的.gz文件.

string json = Resource1.json;

using (MemoryStream input = new MemoryStream(Encoding.UTF8.GetBytes(json)))
using (MemoryStream output = new MemoryStream())
{
    using (GZipStream compression = new GZipStream(output, CompressionMode.Compress))
    {
        input.CopyTo(compression);

        byte[] bytes = output.ToArray();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑: 移出output.ToArray()内部using条款似乎工作.但是,这会关闭大多数用法的输出流.IE:

        using (MemoryStream input = new MemoryStream(Encoding.UTF8.GetBytes(json)))
        using (MemoryStream …
Run Code Online (Sandbox Code Playgroud)

.net c# gzipstream

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

为什么这些参数不起作用?

public static string ChangeDeviceState(int deviceID, DeviceState nextState)
{
    bool temp1;
    string temp = "";
    return ChangeDeviceState(deviceID, nextState, temp1, temp, "", "", "", "", ""); 
}

public static string ChangeDeviceState(int deviceID, DeviceState nextState, out bool? isAccessToken, out String challengeOrToken, string accessToken, string serialNumber, string MACAddress, string deviceModel, string answer )
{
Run Code Online (Sandbox Code Playgroud)

我所要做的就是有另一种方法,其他参数不是必需的.我bool isAccessToken必须是可空的,challengeOrToken必须是一个out param.

我收到了非法的参数错误.

我真的不明白c#中的这些参数功能.任何帮助是极大的赞赏.

c# nullable out

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

为什么在此选择查询中未选择任何内容?

如果我跑

Select distinct CompanyID from Device 
Run Code Online (Sandbox Code Playgroud)

我得到6排.如果我跑

Select CompanyID from Company
Run Code Online (Sandbox Code Playgroud)

我得到了8441行.如果我运行以下内容:

如果我跑

Select CompanyID
from Company where CompanyID NOT IN 
( 
   Select distinct CompanyID from Device
)
Run Code Online (Sandbox Code Playgroud)

我应该让那些不在原始选择声明中的8435家公司,对吗?

但是,当我运行它时,我得到0行.这是什么问题?上述6个结果中的一个是null,但这无关紧要.

谢谢!

编辑:有了Marc-s的帮助,我能够得到以下声明成为我需要的东西,我仍然觉得这个查询还有一个额外的步骤,有人想加入这个吗?

DELETE from Company where CompanyID NOT IN
(
Select C.CompanyID 
from Company C where C.CompanyID IN 
( 
  Select distinct CompanyID from Device
)
OR CompanyID IN
(
  Select distinct CustomerID from Device
)
OR CompanyID IN
(
  Select distinct CompanyID from AssignedCompanies
 )
 )
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008-r2

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