-1
我有一个数据库,其中第一列是英国格式的星期启动(日/月/年)。为什么我的SQL数据库按第一列排序?
每个新的一周行添加到使用
"INSERT INTO table VALUES (".$weekstart.", 0, 0, 0)";
的“0'代表值的表那个星期记录下来。
进入7月份时,030717出现在表格的顶部,而不是附加到底部,导致我假定表格按第一列排序。有没有办法来禁用这个或我将不得不添加索引列?
如果我要建立一个索引列,那么在每个新周开始时考虑这个问题的最好方法是在表中创建新行时 - 我不想对数据库进行调用以获取以前的索引只需添加一个并再次写入它?
编辑:
查询:
$query = "INSERT INTO table VALUES (".$weekStart.", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)";
runSql($query);
function runSql($query){
$username = "XXX";
$password = "XXX";
$conn = new PDO('mysql:host=XXX;dbname=XXX', $username, $password);
$stmt = $conn->prepare($query);
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_OBJ);
$read = $stmt->fetchColumn();
return $read;
}
截至上周,列 'weekStart' 显示所有日期,以便(070617,140617,210617,280617)。截至今天早上,030717已将自己推上了第一排。
表格本来就是未排序的,结果显示的顺序是不可预知的,除非你指定了一个ORDER BY'子句。另外,它看起来像是将日期存储在字符串列('varchar','char')中。你应该使用'date'数据类型,这就是它的用途。将日期作为字符串存储不过是头痛而已。 – HoneyBadger
我没有任何东西(我可以看到)以这种方式排列桌子,有什么建议吗? –
你能提供表的列结构和查询吗? – Jester