标签: sql-update

您是否只更新已更改的字段或所有字段?

我想知道更新记录以检索现有记录是否值得服务器时间,循环检查更改的字段并仅将更改的字段放入更新查询中?(我使用的是MySQL和PHP.)

执行此操作的主要原因是为了更改日志目的而减小更新查询的大小.通常,查询可能有15个字段,但实际上只有2个字段正在更改.此查询也可以用于日志记录,因为它只包含更改的字段,因此更容易解析.

我担心的是检索现有记录所需的时间.

或者有没有办法从MySQL检索它更新的哪些字段?

mysql changelog sql-update

10
推荐指数
1
解决办法
6025
查看次数

替换MySQL中的所有字段

我需要使用该REPLACE命令替换表的列中的一些字符.
我知道该REPLACE命令需要一个列名,然后是要更改的文本(在下面的例子中,'a'char)和新文本(在下面的例子中,'e'char).

UPDATE my_table SET my_column = REPLACE (my_column,'a','e' );
Run Code Online (Sandbox Code Playgroud)

这样执行这个命令将改变所有的" 中"出现my_column的列my_table表与" è "字符.

但是,如果我需要REPLACE为每一列执行命令而不仅仅是一个列呢?这可能吗?

谢谢

mysql sql replace sql-update

10
推荐指数
2
解决办法
1万
查看次数

MYSQL - 改变2020年至2011年的日期

我有YYYY-MM-DD格式的大量日期

但我整年都在2020-MM-DD

我想把它改成2011-MM-DD

我怎样才能做到这一点?

mysql datetime date sql-update

10
推荐指数
2
解决办法
6279
查看次数

如何只更新Yii中活动记录的特定字段?

我有一个模型(ActiveRecord)有5个属性(DB列).
我获取特定记录并填充包含3个字段的表单(不应更新其他两个字段).
然后我更改特定字段并按保存.

如何更新记录,而不是触及不在表单中的字段?

php activerecord model yii sql-update

10
推荐指数
2
解决办法
3万
查看次数

更正SQLite语法 - 使用WHERE EXISTS更新UPDATE

我正在尝试更新SQLite表中的列中的选定值.我只想更新符合条件的维护中的单元格,并且必须将单元格更新为从子表中获取的单个值.

我尝试了以下语法,但我只获得了一次单元格更新.我还尝试了替代方案,其中所有单元格都更新为子表格的第一个选定值.

UPDATE maintable
SET value=(SELECT subtable.value FROM maintable, subtable
WHERE  maintable.key1=subtable.key1 AND maintable.key2=subtable.key2)
WHERE EXISTS (SELECT subtable.value FROM maintable, subtable
WHERE  maintable.key1=subtable.key1 AND maintable.key2=subtable.key2)
Run Code Online (Sandbox Code Playgroud)

什么是合适的语法?

sqlite exists where sql-update

10
推荐指数
4
解决办法
3万
查看次数

SQL Server - 如何在Update命令上提示索引?

我正在尝试执行以下命令以强制更新使用非聚集索引:

 UPDATE Flights 
 SET Airtime=5555678
 WHERE Distance=10000
 OPTION (TABLE HINT(Flights, INDEX (DistanceIndex)))
Run Code Online (Sandbox Code Playgroud)

......这是错误的:

消息8724,级别16,状态1,行75
无法执行查询.表HINT或TEENROWSET函数'Flights'不能在TABLE HINT子句中指定.

关于如何在语句中正确形成语法,我找不到任何明确的建议TABLE HINT.

请问任何人都可以告诉我哪里出错了?

sql-server hint sql-update

10
推荐指数
1
解决办法
1万
查看次数

CodeIgniter上的MySql脚本更新

我很难把MySQL查询放到php Codeigniter.我尝试搜索,但我还没有找到.

这是代码:

UPDATE `Pelayanan` SET `TGLBAYAR` = INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/')
UPDATE `Pelayanan` SET `TGLRUBAH` = INSERT(`TGLRUBAH`, 3, 0, '/'), INSERT(`TGLRUBAH`, 6, 0, '/')
ALTER TABLE `Pelayanan` MODIFY COLUMN (`TGLBAYAR` DATE, `TGLRUBAH` DATE)

UPDATE `Pelayanan` SET `LAMA` = DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)
Run Code Online (Sandbox Code Playgroud)

我想按顺序运行此代码,但我不知道是否使用CASE或其他东西.controller.php和model.php的代码如何?

php mysql codeigniter alter-table sql-update

10
推荐指数
1
解决办法
753
查看次数

postgresql 9.5使用jsonb_set更新特定的jsonb数组值

目前我正在使用postgreSQL 9.5并尝试更新jsonb字段数组中的值.但我无法获得所选值的索引

我的表看起来像:

 CREATE TABLE samples (
    id serial,
    sample jsonb
 );
Run Code Online (Sandbox Code Playgroud)

我的JSON看起来像:

{"result": [
    {"8410": "ABNDAT", "8411": "Abnahmedatum"},
    {"8410": "ABNZIT", "8411": "Abnahmezeit"},
    {"8410": "FERR_R", "8411": "Ferritin"}
]}
Run Code Online (Sandbox Code Playgroud)

我的SELECT语句可以获得正确的值:

SELECT 
    id, value 
FROM 
    samples s, jsonb_array_elements(s.sample#>'{result}') r  
WHERE 
    s.id = 26 and r->>'8410' = 'FERR_R';
Run Code Online (Sandbox Code Playgroud)

结果是:

id | value
----------------------------------------------
26 | {"8410": "FERR_R", "8411": "Ferritin"}
Run Code Online (Sandbox Code Playgroud)

好的,这就是我想要的.现在我想使用以下UPDATE语句执行更新以添加新元素"ratingtext"(如果尚未存在):

UPDATE 
    samples s
SET
    sample = jsonb_set(sample,
              '{result,2,ratingtext}',
              '"Some individual text"'::jsonb,
              true)
WHERE
      s.id = 26;
Run Code Online (Sandbox Code Playgroud)

执行UPDATE语句后,我的数据看起来像这样(也正确):

{"result": [
    {"8410": "ABNDAT", "8411": "Abnahmedatum"}, …
Run Code Online (Sandbox Code Playgroud)

arrays postgresql json sql-update jsonb

10
推荐指数
1
解决办法
4988
查看次数

SQL如何通过INNER JOIN更新 -

请帮我解决这个问题,因为我尝试了这个论坛的所有内容,但仍未找到解决方案.

好吧,我有两张桌子:

  • 价格
  • 制造商

我想更改表格价格中两个字段的值.我会给那些具体的价值观.

这些领域是:

  • price.override(我想在其中给出值0)和
  • price.product_discount_id(我想在其中给出值66)

但我想仅为ID为31的制造商更改字段.

所以,我首先检查INNER JOIN是否正常工作.

SELECT manufacturers.manufacturer_id,
prices.product_id,
prices.product_price,
prices.override,
prices.product_discount_id
FROM manufacturers
INNER prices
ON manufacturers.product_id=prices.product_id
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试更新这两个字段时,我不知道如何做到这一点.例如,我试过这个,但它不起作用:

UPDATE prices
SET prices.override=1
FROM
INNER JOIN prices
ON manufacturers.product_id=prices.product_id
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

UPDATE prices
SET prices.override=1, 
INNER JOIN manufacturers 
ON prices.virtuemart_product_id = manufacturers.virtuemart_product_id 
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)

我做错了什么?通常我收到的错误消息是:

#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第3行的'FROM jos_virtuemart_product_prices价格INNER JOIN jos_virtuemart_product_man'附近使用正确的语法

我读了别名的东西,但仍然没有结果.

任何帮助,将不胜感激!

mysql sql alias join sql-update

10
推荐指数
1
解决办法
120
查看次数

在Django中,如何防止“使用update_fields保存不会影响任何行”。错误?

我正在使用Django和Python 3.7。我有这个代码

article = get_article(id)
...
article.label = label
article.save(update_fields=["label"])
Run Code Online (Sandbox Code Playgroud)

有时我在“保存”行上收到以下错误...

    raise DatabaseError("Save with update_fields did not affect any rows.")
django.db.utils.DatabaseError: Save with update_fields did not affect any rows.
Run Code Online (Sandbox Code Playgroud)

显然,在“ ...”中,另一个线程可能正在删除我的文章。还有另一种方法可以重写我的“ article.save(...)”语句,以便如果该对象不再存在,则可以忽略引发的任何错误?

django django-models python-3.x sql-update

10
推荐指数
1
解决办法
610
查看次数