我想知道更新记录以检索现有记录是否值得服务器时间,循环检查更改的字段并仅将更改的字段放入更新查询中?(我使用的是MySQL和PHP.)
执行此操作的主要原因是为了更改日志目的而减小更新查询的大小.通常,查询可能有15个字段,但实际上只有2个字段正在更改.此查询也可以用于日志记录,因为它只包含更改的字段,因此更容易解析.
我担心的是检索现有记录所需的时间.
或者有没有办法从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为每一列执行命令而不仅仅是一个列呢?这可能吗?
谢谢
我有YYYY-MM-DD格式的大量日期
但我整年都在2020-MM-DD
我想把它改成2011-MM-DD
我怎样才能做到这一点?
我有一个模型(ActiveRecord)有5个属性(DB列).
我获取特定记录并填充包含3个字段的表单(不应更新其他两个字段).
然后我更改特定字段并按保存.
如何更新记录,而不是触及不在表单中的字段?
我正在尝试更新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)
什么是合适的语法?
我正在尝试执行以下命令以强制更新使用非聚集索引:
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.
请问任何人都可以告诉我哪里出错了?
我很难把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的代码如何?
目前我正在使用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) 请帮我解决这个问题,因为我尝试了这个论坛的所有内容,但仍未找到解决方案.
好吧,我有两张桌子:
我想更改表格价格中两个字段的值.我会给那些具体的价值观.
这些领域是:
但我想仅为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'附近使用正确的语法
我读了别名的东西,但仍然没有结果.
任何帮助,将不胜感激!
我正在使用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(...)”语句,以便如果该对象不再存在,则可以忽略引发的任何错误?
sql-update ×10
mysql ×5
php ×2
sql ×2
activerecord ×1
alias ×1
alter-table ×1
arrays ×1
changelog ×1
codeigniter ×1
date ×1
datetime ×1
django ×1
exists ×1
hint ×1
join ×1
json ×1
jsonb ×1
model ×1
postgresql ×1
python-3.x ×1
replace ×1
sql-server ×1
sqlite ×1
where ×1
yii ×1