PDA

View Full Version : sql



meysam_meysam74
سه شنبه 31 اردیبهشت 1387, 15:48 عصر
"Delete * From TABLE1 Where ( NAME ='ali' )"

با این دستور هرچی ali تویه فیلد name باشه حذف میشه ولی منظور من همه ali ها نیست
من یم خواستم ببینم راهی هست که مثلا اولین ali حذف بشه ؟
یا مثلا


"Select * From TABLE1 Where ( NAME = '" + "ALI" + "')"

یا جوری اولین رو پیدا می کنیم بعد تویه یه حلقه while همه رو سرچ می کنه
DataReader.Read()
من از کلاس oledb استفاده می کنم میشه تویه همین سرچ فیلد های دیگه رو چک کرد . میشه همینجا فیلد ها رو حزف کرد ؟

baran_mehr
سه شنبه 31 اردیبهشت 1387, 17:51 عصر
داداش گلم بهتر بود این سوال رو در بخش Sql مطرح میکردی
اما میتونید با استفاده از یک دستور select مقدار اولین رکوردی رو که نام یک فیلدش علی هست رو بر گردونید و با استفاده از اطلاعات برگشتی از اون دستور و با یک دستور delete را به کار ببرید


Select Top 1 * From Table Where(name='ali')

این دستور اولین رکوردی رو که نام علی داشته باشه بر میگردونه بعد دستور Delete رو با اطلاعات بازگشتی از دستور بالا انجام بدی
موفق باشی.

linux
سه شنبه 31 اردیبهشت 1387, 21:16 عصر
"Delete * From TABLE1 Where ( NAME ='ali' )"

با این دستور هرچی ali تویه فیلد name باشه حذف میشه ولی منظور من همه ali ها نیست
من یم خواستم ببینم راهی هست که مثلا اولین ali حذف بشه ؟
یا مثلا

یا جوری اولین رو پیدا می کنیم بعد تویه یه حلقه while همه رو سرچ می کنه
DataReader.Read()
من از کلاس oledb استفاده می کنم میشه تویه همین سرچ فیلد های دیگه رو چک کرد . میشه همینجا فیلد ها رو حزف کرد ؟

مثلا را ول کن! مطمئنا یا در طراحی دیتابیس اشتباه کردی یا در کدنویسی که به همچین چیزی رسیدی، دستور delete را در اکثر موارد برای حذف یک مورد با Primery key بکار می برند

meysam_meysam74
پنج شنبه 02 خرداد 1387, 15:19 عصر
داداش گلم بهتر بود این سوال رو در بخش Sql مطرح میکردی
اما میتونید با استفاده از یک دستور select مقدار اولین رکوردی رو که نام یک فیلدش علی هست رو بر گردونید و با استفاده از اطلاعات برگشتی از اون دستور و با یک دستور delete را به کار ببرید

کد:
Select Top 1 * From Table Where(name='ali')
این دستور اولین رکوردی رو که نام علی داشته باشه بر میگردونه بعد دستور Delete رو با اطلاعات بازگشتی از دستور بالا انجام بدی
موفق باشی.

خوب حلا که فیلد علی رو برگردون چه جوری باید حذفش کنم ؟

ezamnejad
پنج شنبه 02 خرداد 1387, 16:19 عصر
اين سوال توي بخش sql هم مطرح شده بود .


Delete from Table1 where Name = (Select Name from Table1 where Name = 'Ali')

http://barnamenevis.org/forum/showthr
ead.php?t=106881 (http://barnamenevis.org/forum/showthread.php?t=106881)

baran_mehr
پنج شنبه 02 خرداد 1387, 22:59 عصر
سلام
ezamnejad جان این سوال تو بخش sql رو تازه پرسیده بودم یعنی حدود یک روز بعد از طرح این سوال تو این قسمت...چون میخواستم بدونم ایا راه بهتری برای انجام این کار وجود داره یا نه
البته کد بالا درست نیست چون تمام علی ها رو پاک میکنه درستش کد زیر هست که فقط اولین علی رو پاک میکنه:

DELETE FROM Table1 WHERE ID = (SELECT TOP 1 ID FROM Table1 WHERE PersonName='علی')
و یا برای یک فیلد:
DELETE FROM Table1 WHERE Name = (SELECT TOP 1 Name FROM Table1 WHERE Name='ali')')