我在MySQL中有这个表;
我试图通过此查询获取第10行的cc_rowid 10和cc_type In;
$stmt = $mysqli->prepare("SELECT MAX(cc_rowid),MAX(cc_type)
FROM clock_clockings
WHERE cc_eeno =(SELECT cc_eeno FROM clock_clockings WHERE cc_rowid=?)");
它给了我cc_rowid = 10和cc_type = Out。
我不了解如何改善这一点以获得理想的结果。我将不胜感激任何帮助。感谢
答案 0 :(得分:1)
如果您尝试获取max cc_rowid的cc_type,则需要以下内容:
SELECT cc_rowid, cc_type
FROM clock_clockings
WHERE cc_rowid = (SELECT max(cc_rowid) FROM clock_clockings);
您可以使用内部联接和相同的子查询执行相同的操作。六分之一,另外六分之一。您可以在子查询中放置更多WHERE逻辑,以过滤掉max
聚合
答案 1 :(得分:0)
JNevill的回答很好。但是,我想补充一下你当前问题的原因:
$stmt = $mysqli->prepare("SELECT MAX(cc_rowid),MAX(cc_type)
FROM clock_clockings
WHERE cc_eeno =(SELECT cc_eeno FROM clock_clockings WHERE cc_rowid=?)");
您目前正在尝试获取cc_rowid
和cc_type
的MAX值,因为cc_type数据是一个字符串,它获得的内容最大 - 最长 - 这就是为什么正在出现“Out”。
此选择不需要MAX,因此请尝试:
$stmt = $mysqli->prepare("SELECT MAX(cc_rowid), cc_type
FROM clock_clockings
WHERE cc_eeno =(SELECT cc_eeno FROM clock_clockings WHERE cc_rowid=?)");