目前,我们记录了用户最近20次的媒体浏览量,这样他们就可以有一个简短的历史页面,记录他们最近看过的内容。
为此,我们将媒体ids插入到一个表中。
为了保持较小的表格大小,目前每个用户只有20个项目,所以在插入行之前,我们检查他们当前有多少个历史in,如果少于20个,那么我们只需插入新行,如果超过20个,那么我们必须选择最后一行并在插入新行之前删除它。
$historyResult = mysql_query("SELECT id FROM mediatable WHERE userId = $userId ORDER BY id ASC");
if(mysql_num_row
在MySQL中使用SELECT时,是否可以重新定义行名
"SELECT posts.id AS the_post_id FROM posts"
所以我可以在PHP中这样调用它:
$query = mysql_query("SELECT posts.id AS the_post_id FROM posts");
while($row = mysql_fetch_array($query)){
// I call the ID with `the_post_id` and not `id`
echo $row["the_post_id
当我们用php更新MySQL记录时,我们可以使用以下方法检查它是否有效:
$mysqli->affected_rows;
但是,如何检查哪一列已被修改?
例如,在我的表中有以下列: id / name / age
在记录中,我们有数据:1/ Woton / 18
如果我发送一个:UPDATE mytable SET id = '1', name = 'Woton', age = '20' WHERE id = '1'
只有年龄字段已经改变了,但是SET是为每个人设置的,我怎样才能得到数据实际变化的列呢?
我有一个名为lead_history的表,当我从它计算平均值时,查询占用了一分半钟的时间。该查询正在解析大约15k行。我已经根据下面的查询添加了索引,但这似乎仍然需要很长时间。任何帮助都将不胜感激。
SELECT AVG(TIMEDIFF(tq.ts, tv.ts)) / 60 avg_time_to_quote
FROM lead_history tv
JOIN lead_history tq
ON tv.agency_id = tq.agency_id
WHERE tv.new_status = 'Verified'
AND
我有一个DB初始化脚本,它可以对DB进行几百次插入.每次发布时,我都需要运行这个脚本,并且总是收到一个通知,告诉我这个脚本有太多的结果窗口。脚本如下所示:
我的SQL脚本包含以下select和insert语句的混合:
-- I don't want these select statements to produce any result in the result window
SELECT @var1 := col1 FROM table1 WHERE col1 = 'some value';
SELECT @var2 := col2 FROM table2 WHE