我有一个包含ID, STATUS, DATE
列的简单表,表中的行按DATE排序,我想获取所有行,直到达到特定ID,然后停止,如:
SELECT FROM myTable WHERE `DATE` <= '2017-10-09' ORDER BY `DATE` ASC UNTIL? `ID` = 119;
我想知道是否可能以某种方式停止特定ID,无论ID是什么..
感谢。
编辑解释
我想选择在任何列下排序的行,但在达到特定提供的ID时停止。在上图中,结果应该是除了行119之外的所有行。
我希望现在很清楚。
答案 0 :(得分:1)
像this这样的东西可能有效:
SET @marker = NULL;
SELECT *
FROM myTable
WHERE `DATE` <= '2017-10-09'
AND ISNULL(@marker := IF(id = 119, 1, @marker))
ORDER BY `DATE` ASC;
答案 1 :(得分:0)
您应该短语查询以选择日期小于OrderingService service = new OrderingService();
IOrderingService port = service.getWSHttpBindingIOrderingService();
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put("ws-security.username", USERNAME);
bp.getRequestContext().put("ws-security.password", PASSWORD);
System.out.println("submit order...");
SubmitOrderResponse submitOrderResponse = port.submitOrder(WebService.makeSubmitOrderRequest());
System.out.println("submit order response...");
Integer orderId = submitOrderResponse.getOrderId();
System.out.println("orderId:" + orderId);
submitOrderResponse.getOrderStatus().getValue().getOrderItemStatus().forEach(item -> {
System.out.println("item.getProduct:" + item.getProduct());
System.out.println("item.getStatus:" + item.getStatus());
});
System.out.println("AccountId:" + submitOrderResponse.getAccountId());
的记录日期的记录:
ID = 119
答案 2 :(得分:0)
因此,例如,您还将返回ids 200-202的行,除非您在日期上提供更高的精度,或者将id字段添加到order by子句中,否则无法解决这个问题,在这种情况下,您需要&#39 ; ll需要在同一日期排除指定的id整数值以上的所有ID。