这可能很简单,这是我的查询:
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子句的单个列?
我读了liquibase的最佳实践,特别是用于管理存储过程:
管理存储过程:尝试为存储过程维护单独的更改日志,并使用runOnChange ="true".此标志强制LiquiBase检查变更集是否已修改.如果是这样,liquibase再次执行更改.
"为存储过程维护单独的更改日志"是什么意思?
我通常有一个与发布链接的更改日志目录.每个更改日志文件都包含在master.xml.
在遵循他们的建议时,目录结构会是什么?
我正在向表中添加删除级联.该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) 我已经尝试过使用onblur来解决我的问题,但这只是因为焦点从一个文本框变为另一个文本框或类似的东西.我正在为嵌入式浏览器编写一个有几个问题的网页.当浏览器被隐藏时,gif没有被隐藏,并且似乎它保留在缓存中.我的想法也许是有一种方法可以调用浏览器隐藏gif,因为焦点丢失了.在这种情况下,焦点类似于用户点击另一个窗口.这似乎超出了网络技术的范围,但我想我会问.
谢谢!
我有一个提交按钮,将发送一个动作.操作的有效负载是将发送到API的发布数据.目前我使用bindActionCreators的mapDispatchToProps:
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
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个设备.第三个声明很慢.如果已经加载到内存中,它不应该快吗?我理解在大多数情况下你会将整个查询应用于数据库调用,但在我的情况下,我已经将我的设备加载到内存中.第一和第二个电话非常快.
在 Go 中,您可以这样实现堆:https://golang.org/src/container/heap/example_pq_test.go
您实现了sort.Interface、Pop、 和Push,并且您已经拥有了一个优先级队列/堆。Pop在和Push实现的示例中,heap.Fix未调用该函数。我看到它heap.Init被调用了,所以我可以理解当时发生的一些堆化。但是,您可以推送和弹出项目,这会运行您自己的代码,并且会维护堆属性。
如果您在 init 之后推送或弹出项目而不调用heap.fix,那么如何维护堆属性?
我们经常有我们只想更新资源的子集字段的用例。所以如果我们有一个资源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,因为据我所知,没有空字段,只有默认值。这在默认值有效的许多情况下不起作用。
如果压缩一些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) 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#中的这些参数功能.任何帮助是极大的赞赏.
如果我跑
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) c# ×3
sql ×2
.net ×1
distinct ×1
duplicates ×1
focus ×1
go ×1
gzipstream ×1
heap ×1
iqueryable ×1
javascript ×1
linq ×1
liquibase ×1
nullable ×1
onblur ×1
out ×1
performance ×1
proto3 ×1
react-redux ×1
reactjs ×1
redux ×1
sql-server ×1