我的桌子上有100张活动记录--汽车。用户已决定降级他们的帐户,现在有资格只有5个活动记录。我需要将95条记录(最早的第一条)的过期日期设置为当前的时间戳。如果您包含一些cakephp提示,我如何在MySQL中做到这一点?谢谢(但我将仅感谢您提供的SQL提示)。
下面是我尝试过的内容,但我得到了一条错误消息,说明mySQL在子查询中不支持限制。
UPDATE cars
SET archived = NOW()
WHERE id NOT IN (
SELECT id
FROM cars
ORDER BY created DESC LIMIT 5
)
我一直收到一条消息,说数据库查询失败::你的SQL语法有一个错误;检查与你的MySQL服务器版本相对应的手册,在第一行的“WHERE id=2”附近使用正确的语法,我似乎找不到原因。我的User insert方法工作得很好,但是无论出于什么原因,我都不能用这个update方法克服这个错误:
public function update(){
global $database;
$sql = "UPDATE users SET ";
$sql .= "username='" . $database->escape_value($t
这是我第一次尝试创建触发器,因此任何帮助都将不胜感激。我有两个表,如下所示:
点赞(用户名,comment_id)用户(用户名,密码,积分)
我正在尝试创建一个触发器,这样当用户喜欢一条评论(点赞中的新条目)时,该用户的点数就会增加1。这就是我尝试过的:
DELIMITER $$
create trigger update_points
after insert on likes
for each row
begin
SET @username = new.username;
UPDATE user
SET points = points + 1
WHERE u
在开始之前,我要说明我对PHP和MySQL还不太熟悉。我正在尝试将会话变量写入MySQL数据库。在我能够使用HTML表单提交第一条记录之后,我认为我已经正确地执行了这项操作,但我无法提交其他记录。我的数据库中只显示一条记录,任何提交新记录的尝试都不会出错,而只是不会出现在我的数据库中。
我的表单跨越多个页面,因此我将包含PHP代码:
<?php
$con = mysql_connect("localhost","user","mypassword");
if (!$con)
{
die('Could not c
我已经写了一个脚本来更新我的mysql数据库中的股票,但我只更新了xml中的最后一条记录,我正在通过一条正确的隧道寻找,希望有一双新的眼睛来看它。 import requests
import xml.etree.ElementTree as ET
from lxml import etree
from getpass import getpass
from mysql.connector import connect, Error
r = requests.get('http://api.edc.nl/xml/eg_xml_feed_stock.xml')
root =
假设我有以下select语句,它在insert_time之后返回第一次出现的where dog=0
SELECT mammal, id
FROM mytable
WHERE dog = 0
AND insert_time > "2012-02-09 00:00:00"
LIMIT 0, 1
然后,我想要更新该行,以便只有当哺乳动物还没有=1时才使用mammal = 1。我目前知道如何做的唯一方法是在PHP中获取数组,检查mammal元素,然后运行另一条mysql语句来UPDATE行。
UPDATE mytable
SET mammal = 1
WHERE id =
我有一个问题,如果我只想通过一条命令更新2条记录,不可能这样做吗?
mysql_query("UPDATE damacaicheck SET trimresult = '$trim' where date = '$Current' and date = '$yesterdaydate'");
或
mysql_query("UPDATE damacaicheck SET trimresult = '$trim' where date in ('$Current','$yesterda
我们正在实现一个聊天服务,我想要一些关于桌子设计的意见。我们的服务使用MySQL,我们的DB有2个表,Thread和Messages。Threads表存储所有聊天线程,messages表存储所有消息。一个聊天线程可以有多条消息,而一条消息只属于一个线程。每条消息都由Messages表中名为messageId的列标识。
在我们的服务中,我们需要时不时地获取每个线程的最后一条消息的messageId。我可以看到两个选项:
1 add a column called lastMessageId to Threads to keep track of the last message; each ti
我注意到在jQuery中.each()循环中使用AJAX时出现了问题。在脚本执行时,只更新我数据库中的第一条记录。
这是我的剧本:
function save(){
var _userTypeId;
var _userTypeName;
var _isDeleted;
var request;
$("tr.recUserType").each(function(){
$this = $(this);
我正在尝试执行一条简单的mysql update语句,或者至少我认为这是一条简单的update语句。它正在成功执行,但它与指定的条件不匹配,不会更新表...有没有人知道我做错了什么?
update messagequeue set timesent = curtime() where deviceid = '1231231237' and timesent = NULL
表中有4列和1行。
id, message, deviceid, timesent
the timesent is default null.
the deviceid is '1231231237&
我正在创建一条应该更新表的mysql语句,但是我决定将其设置为动态的,例如,而不是以正常方式将列名设置为等于某个值:
UPDATE mytable SET mycolumn = 'a value';
我使用了一个变量。在这种情况下:
SET @column = 'mycolumn';
UPDATE mytable SET @column = 'a value';
这将在我执行update语句时返回一条语法错误消息。有没有办法做到这一点?
我创建了一个函数changeIp()来禁用一条记录并返回一条新记录。如你所见,我使用的是3SQL查询。
有没有更好的方法来减少SQL查询的数量?
function changeIp() {
// Find 1 record which is not disabled
$SQL = "SELECT * FROM ip WHERE disable = 0 order by id limit 1";
$qIp = mysql_query($SQL) or die(mysql_error());
$qrow = mysql_fetch_assoc($q
我有一条Mysql update语句,但它运行的时间太长- 52秒
update table_ea ea, table_a a
set ea.match_creator='S', a.match_state=N
where
ea.source_id=a.asset_id and
ea.source_name='S' and
ea.match_creator='S' and
ea.entity_id like 'S'
问题:
a)我们可以像对Select语句一样在Mysql中对
我想在MySQL中创建一个触发器,但是在运行创建代码时它会显示一条错误消息:
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON trigger
FOR EACH ROW BEGIN
update users
SET username= 'krishna',
password= 'abc';
END
错误是:
1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在第2行使用接近“触发器”的每一行开始
这不是一个完整/正确的MySQL查询仅伪代码:
Select *
from Notifications as n
where n.date > (CurrentDate-10 days)
limit by 1
FOR UPDATE
状态:如果将FOR UPDATE与使用页锁或行锁的存储引擎一起使用,则查询检查的行将被写锁定,直到当前事务结束
这里是只返回一条被MySQL锁定的记录,还是它必须扫描所有记录才能找到这条记录?
mysql_query("update users set balance=balance+'$pwbalance'-'$totalprice' where memberid='$memberid' and (balance+'$pwbalance'-'$totalprice')>=0")or die(mysql_error());
$count=mysql_affected_rows();
当我回显$pwbalance时,它是40.00;当我回显$totalprice时,它是40;所以应该有
在运行这段MYSQL代码时遇到一些问题。我试图通过PHPMYAdmin添加一个onUpdate触发器,它接受行,然后接受修改后的条目,并检查它是否大于下面的一些值。我试图做的是让代码检查一条if语句,执行if语句中的代码,然后转到下一条if语句。我环顾了一下,但找不到哪里出错了。感谢您的帮助!
代码:
IF NEW.someVal> 10 THEN
UPDATE someTable
SET someTable.colA = someTable.colA +1;
END IF;
IF NEW.someVal > 50 THEN
UPDATE someTable
SET some
我的数据库是mysql5.7,innodb,已提交隔离级别。我害怕死锁,所以我保持mysql sql语句简单,只有:
insert into ... where ...insert into ... where ... on duplicate key update ...update ... where ...delete from ... where ...select * from ... where ...
每个sql将只有上面的一条语句。例如:连接exec insert into ... where ...;一次,永远不要执行多语句insert ... where ...; upda
我的网站有一个登录脚本,可以检查mysql表中的用户数据。该表有几列(name、username、pass等),其中最重要的(就这个问题而言)是“username”和“online”列。“online”列是BOOL值(online为true时为1,false时为0)。当用户成功登录时,$_SESSION变量被设置为表中的数据,我使用以下命令将表中的“online”值从“0”更改为“1”。
mysql_query("UPDATE Members SET Online='1' Where UserName='$username' AND Online=
我正在尝试编写一个简单的流,流式处理mysql字段中的所有内容。但我当前的脚本完全没有显示任何内容..没有错误,什么都没有。这就是它:
include("user_sytem_scripts/connect.php");
$sql_updates = mysql_query("SELECT item_id, username, item_content, update_time FROM updates ORDER BY update_time DESC LIMIT 30") or die("Query failed with error: &
我正试图在我的Rails控制台中运行以下代码:
ActiveRecord::Base.connection.execute "DELETE FROM recommendations WHERE place_id=4000000001267 AND recommender_id=2728498;UPDATE IGNORE recommendations SET place_id=4000000001267 WHERE place_id=4000000564630 AND recommender_id=2728498;"
它只是为了合并而删除一条旧记录并重写另一条记录。
Rails
例如,下面的代码不会转义数据库的注释字符串:
if ($_POST['comment']) {
$comment = mysql_real_escape_string(htmlentities($_POST['comment_txt']));
$comment_insert = mysql_query("UPDATE msgs SET msg='$comment' WHERE user='$username'")
or die;
}
但这一条会:
if ($_POST[
我正在和Winforms,MySQL和C#一起做一个考勤项目。
在这方面,我想在一个表中更新“总缺勤”和“总在场”。我为此写了代码:
int p = 0;
int a = 0;
string sno = "";
MySqlDataReader Reader;
command.CommandText = "select * from attendance_monthly_rpt";
connection.Open();
Reader = command.ExecuteReader();
while (Reader.Read())
{
mySql :您的SQL查询已成功执行
0受过程内最后一条语句影响的行
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_adm`(OUT `sp_out` INT(11), IN `sp_email` VARCHAR(50) CHARSET utf8)
NO SQL
BEGIN
UPDATE `admin` SET `last_try`=curtime() WHERE `email`=sp_email;
SET sp_out=ROW_COUNT();
END
为什么过程中的最后一条语句会影响0行?!
编辑:
当我在我的存储过程中像nav
UPDATE mytable SET this = 'this' AND that = 'that'
WHERE MATCH (items) AGAINST ('item5')
问题是,此查询将对找到的每个匹配项执行UPDATE,而不是更新匹配的第一行。
向查询添加LIMIT 0, 1会导致MySQL语法错误。有没有办法对使用全文查询找到的第一条记录执行此更新?
如何在一条MySQL语句中实现两个查询?
例如编码
<?php var query=mysql_query("INSERT INTO adminDetails (user_name) VALUES ('uma');SELECT * FROM adminDetails");
?>
上面的sql给了result.but我在下面的语句中使用了相同的概念,但它不起作用。
<?php
mysql_query("INSERT INTO adminDetails (user_name) VALUES ('uma');UPDATE do