asset_property стол:SQL запрос к INSERT, UPDATE или DELETE
| asset_id | property_id | property_value |
|:--------:|:-----------:|:---------------|
| 146 | 1 | 4G |
| 146 | 3 | 68723-239Gs |
| 147 | 1 | A7 |
Это мой запрос:
INSERT INTO asset_property (asset_id, property_id, property_value)
VALUES
(146, 1, '4G'),
(146, 2, 'Black & Decker'),
(146, 3, ''),
ON DUPLICATE KEY
UPDATE property_value = VALUES(property_value);
Есть ли способ, чтобы сказать что-то вроде этого:
INSERT INTO asset_property (asset_id, property_id, property_value)
VALUES
(146, 1, '4G'),
(146, 2, 'Black & Decker'),
(146, 3, ''),
ON DUPLICATE KEY
UPDATE property_value = VALUES(property_value)
ON VALUES(property_value) IS NULL
DELETE FROM asset_property
WHERE asset_id = VALUES(asset_id)
AND property_id = VALUES(property_id);
Или я мог бы использовать PHP для определения пустых property_value
наборов и строить как запрос. Поэтому мне понадобится следующее:
DELETE FROM asset_property
WHERE 'PRIMARY KEY' IN ('146-3');
Синтаксис в порядке, но на него влияют 0 строк.
Я попытался это:
SELECT 'PRIMARY KEY' FROM asset_property WHERE asset_id = 146;
Но результат:
| PRIMARY KEY |
|:------------|
| PRIMARY KEY |
| PRIMARY KEY |
В MySQL Manual швы, что вы не можете.
Что вы ожидаете? почему вы выбираете «PRIMARY KEY» как строку? –
Я не понял одиночные кавычки, обозначенные строкой _:/_ –