Próbuję uruchomić zapytanie SQL, aby usunąć wiersze o identyfikatorach 163 do 265 w tabeli
Próbowałem usunąć mniejszą liczbę wierszy
DELETE FROM `table` WHERE id IN (264, 265)
Ale jeśli chodzi o usuwanie 100 wierszy naraz, czy jest jakieś zapytanie podobne do powyższej metody, próbuję również użyć tego rodzaju zapytania, ale nie udało mi się go wykonać
DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Proszę powiedz mi zapytanie, aby wykonać powyższą akcję ...
sql
sql-delete
balu zapps
źródło
źródło
Odpowiedzi:
Jeśli chcesz usunąć na podstawie listy, możesz użyć
IN
:DELETE FROM your_table WHERE id IN (value1, value2, ...);
Jeśli chcesz usunąć na podstawie wyniku zapytania, możesz również użyć
IN
:DELETE FROM your_table WHERE id IN (select aColumn from ...);
(Zauważ, że podzapytanie musi zwracać tylko jedną kolumnę)
Jeśli chcesz usunąć na podstawie zakresu wartości, albo
BETWEEN
używasz nierówności , albo używasz:DELETE FROM your_table WHERE id BETWEEN bottom_value AND top_value;
lub
DELETE FROM your_table WHERE id >= a_value AND id <= another_value;
źródło
Możesz użyć
BETWEEN
:DELETE FROM table where id between 163 and 265
źródło
Spróbuj tego:
DELETE FROM `table` WHERE id >=163 and id<= 265
źródło
Delete Id from table where Id in (select id from table)
źródło
delete
oświadczeniaCREATE PROC [dbo].[sp_DELETE_MULTI_ROW] @CODE XML ,@ERRFLAG CHAR(1) = '0' OUTPUT AS SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED DELETE tb_SampleTest WHERE CODE IN( SELECT Item.value('.', 'VARCHAR(20)') FROM @CODE.nodes('RecordList/ID') AS x(Item) ) IF @@ROWCOUNT = 0 SET @ERRFLAG = 200 SET NOCOUNT OFF
Uzyskaj usunięcie wartości ciągu
źródło