Преобразуйте значение таблицы декремента в SQL, затем возвращайте элемент для MYSQL - PullRequest
0 голосов
/ 20 декабря 2011

В 1 запросе к серверу sql, как проверить, больше ли значение таблицы, чем ноль, если значение больше нуля, уменьшить значение и вернуть строку этой таблицы ..

counthere = SELECT COUNT(*) FROM TableName WHERE ColumnName1 > 0 AND ColumnName2 = 'xx';
if (counthere > 0)
{
    valuehere = SELECT ColumnName1 FROM TableName WHERE ColumnName2 = 'xx';
    UPDATE TableName SET ColumnName1 = (valuehere - 1) WHERE ColumnName2 = 'xx';
    SELECT * FROM TableName WHERE ColumnName2 = 'xx';
}

Я хочу использовать Transact-SQL для выполнения 1 запроса к серверу. Возможно ли это? Вы можете помочь мне в качестве примера? спасибо, ребята ..


Я использовал @ Arion's Solution, но все же я получил эту ошибку ..

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * 
           FROM inventorylist 
           WHERE BarcodeNum' at line 1
[Err] IF EXISTS(SELECT * 
           FROM inventorylist 
           WHERE BarcodeNumber = '9555440808279' AND NotificationQuantity > 0)
THEN
      UPDATE inventorylist 
      SET NotificationQuantity = NotificationQuantity - 1
      WHERE BarcodeNumber = '9555440808279'

      SELECT *
      FROM inventorylist
      WHERE BarcodeNumber = '9555440808279'
END
[Msg] Finished - Unsuccessfully
--------------------------------------------------

1 Ответ

1 голос
/ 20 декабря 2011

Если я вас правильно понял. Вы хотите что-то вроде этого:

IF EXISTS(SELECT * FROM TableName WHERE ColumnName1 > 0 AND ColumnName2 = 'xx') 
    THEN 
        UPDATE TableName SET ColumnName1 = ColumnName1-1 WHERE ColumnName2 = 'xx'
        SELECT 
            * 
        FROM 
            TableName
        WHERE 
            ColumnName2 = 'xx'

END IF

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...