1、phpcms v9 一鍵清除欄目數據後怎麼進行恢復啊?
1、用FTP登陸到【caches/bakup/default】文件夾,把這個文件夾整個復制下來吧,簡單點操作。
2、把復制的文件【default】復制一份作為備份,省的不能挽回。
3、找到你造成讓你後悔手賤那一刻的時間,並且把那個時間的文件全部圈出來,都要改的!
4、把其中裡面的【capable.sql】改名為【phpcmstables_20130407_3755_1.sql】就是這個數字格式。當然數字可以換!
5、把你從新命名的文件回傳到你的主機【caches/bakup/default】文件夾下。
6、去你的後台-擴展-資料庫工具-資料庫導入,你發現你剛才命名的文件【phpcmstables_20130407_3755_1.sql】出現了,請點擊後面的【資料庫恢復】,謝天謝地,主表回來了。你可以點擊下【管理內容】,現在各欄目算是回來了。
7、緊接著,請把那個災難時間產生的文件依次序命名為【phpcmstables_20130407_3755_1.sql】格式。
8、先命名download.sql 再命名download_data.sql (就是先恢復沒有data的),如果你將 download.sql命名為phpcmstables_20130407_3756_1.sql,那麼最好將download_data.sql 命名為phpcmstables_20130407_3756_2.sql.
9、將重命名的文件上傳到你的主機的【caches/bakup/default】文件夾下。
10、重復6的步驟,按照你命名的順序,點擊【1】,資料庫會自動把連號的【2】也恢復的!
11、當你的文件依次恢復後,你能看到效果的。
12、可能你在恢復過程有報錯,但是還是能用的,請繼續!
2、sql刪除資料庫中重復的數據語句怎麼寫?
1、drop
database:資料庫名--刪除資料庫的。
2、drop
table:表名--刪除表的。
3、delete
from:表名--where條件--刪除數據的。
4、truncate
table:表名--也是刪除資料庫的。
拓展資料
1、sql即結構化查詢語言(structured
query
language),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
2、sql語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,sql查詢語句就是一個典型的例子,無論是高級查詢還是低級查詢,sql查詢語句的需求是最頻繁的。
3、foxpro資料庫中如何刪除重復記錄
當然可以通過編程實現,不過以下方法最簡單:
sele * from 資料庫 group by 單位 into 新資料庫
use 資料庫 excl
zap
append fenm 新資料庫
說明:Group By就是保留一個同名
4、如何查找和刪除資料庫中的重復數據?
法一:
用Group
by語句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group
by
numhaving
count(num)
>;1
–按num分組後找出表中num列重復,即出現次數大於一次delete
from
student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—-
執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相當於First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);法一:
用Group
by語句
此查找很快的select
count(num),
max(name)
from
student
–查找表中num列重復的,列出重復的記錄數,並列出他的name屬性group
by
numhaving
count(num)
>;1
–按num分組後找出表中num列重復,即出現次數大於一次delete
from
student(上面Select的)這樣的話就把所有重復的都刪除了。—–慎重法二:當表比較大(例如10萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法:—-
執行下面SQL語句後就可以顯示所有DRAWING和DSNO相同且重復的記錄SELECT
*
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
D
–D相當於First,SecondWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-
執行下面SQL語句後就可以刪除所有DRAWING和DSNO相同且重復的記錄DELETE
FROM
EM5_PIPE_PREFABWHERE
ROWID!=(SELECT
MAX(ROWID)
FROM
EM5_PIPE_PREFAB
DWHERE
EM5_PIPE_PREFAB.DRAWING=D.DRAWING
ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);
5、刪除資料庫中重復數據的幾個方法
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主欄位,count(*) from 表名 group by 主欄位 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主欄位 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0
方法二
有兩個意義上的重復記錄,一是完全重復的記錄,也即所有欄位均重復的記錄,二是部分關鍵欄位重復的記錄,比如Name欄位重復,而其他欄位不一定重復或都重復可以忽略。
1、對於第一種重復,比較容易解決,使用 select distinct * from tableName 就可以得到無重復記錄的結果集。
如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。
2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下:
假設有重復的欄位為Name,Address,要求得到這兩個欄位唯一的結果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最後一個select即得到了Name,Address不重復的結果集(但多了一個autoID欄位,實際寫時可以寫在select子句中省去此列)
6、如何刪除SQL資料庫表中重復的記錄?
方法很多,說一個最簡單的。
先建一個表,結構和原來的表一樣,但是在你要去重的列建立一個主鍵,並設置「忽略重復鍵」,把原表中的所有數據插入這個新表,
此時新表中的數據就已經是非重復的了。
把原表數據都刪掉,把新表中的數據都導回來就ok了
7、php如何刪除資料庫中重復的數據 並顯示整理後的數據
使用
select distinct * from tableName
就可以得到無重復記錄的結果集。
如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
8、如何刪除資料庫中的重復記錄?
select
distinct
*
from
表名
distinct
表示去除重復項,必須放到列欄位的前面。
9、如何提取出並刪除資料庫中重復的記錄
我也想知道,於是找了下,一起看看吧
1、查找表中多餘的重復記錄,重復記錄是根據單個欄位(Id)來判斷
select
*
from
表
where
Id
in
(select
Id
from
表
group
byId
having
count(Id)
>
1)
2、刪除表中多餘的重復記錄,重復記錄是根據單個欄位(Id)來判斷,只留有rowid最小的記錄
DELETE
from
表
WHERE
(id)
IN
(
SELECT
id
FROM
表
GROUP
BY
id
HAVING
COUNT(id)
>
1)
AND
ROWID
NOT
IN
(SELECT
MIN(ROWID)
FROM
表
GROUP
BY
id
HAVING
COUNT(*)
>
1);
3、查找表中多餘的重復記錄(多個欄位)
select
*
from
表
a
where
(a.Id,a.seq)
in(select
Id,seq
from
表
group
by
Id,seq
having
count(*)
>
1)
4、刪除表中多餘的重復記錄(多個欄位),只留有rowid最小的記錄
delete
from
表
a
where
(a.Id,a.seq)
in
(select
Id,seq
from
表
group
by
Id,seq
having
count(*)
>
1)
and
rowid
not
in
(select
min(rowid)
from
表
group
by
Id,seq
having
count(*)>1)
5、查找表中多餘的重復記錄(多個欄位),不包含rowid最小的記錄
select
*
from
表
a
where
(a.Id,a.seq)
in
(select
Id,seq
from
表
group
by
Id,seq
having
count(*)
>
1)
and
rowid
not
in
(select
min(rowid)
from
表
group
by
Id,seq
having
count(*)>1)
10、如何刪除資料庫中的重復行
重復行就是有兩條記錄是一樣的,如果該表有主鍵,那重復行就是除了主鍵之外其餘列的值完全相同。為啥表中會出現重復行?按照我的看法,應該是只有兩個途徑:1.程序邏輯錯誤,2.用戶的操作問題。程序邏輯錯誤,那沒啥好說的,只要能發現修改其他也挺簡單的;用戶不知情的情況下添加了相同的數據,比如我的系統中有個把聯系人從excel文件導入資料庫的功能,導入會耗時,抑或是界面卡住,用戶可能沒耐心再次點擊導入,數據就重復導入了。當然我的問題很好解決,,因為是導入所以那些數據都是相鄰的,況且我的每個表都有一個自增的id欄位,所以,直接寫個sql語句把那堆數據刪掉(delete table where id x and id < y)當然解決問題的方式多種多樣,我介紹另一種比較有技術含量一點的,因為不是每次資料庫重復行都像是我這種情況,有時候重復行數目不定,在資料庫中的位置是離散的,用下面的sql語句有點可行Delete table where Id not in (select max(ID) from User group by field)我稍微解釋一下上面這句的含義,1.以某個欄位為分組依據,相同的數據就被分到一組,2.取得每個分組的最大id,也就是得到資料庫行唯一的id集合,3.刪除不在這個id集合的資料庫行。。。。等等,如果直接拿上面的sql語句去資料庫中運行,那會有大麻煩,為啥呢?因為,我們不能確定某個欄位值在表中是否是唯一的,比如名字,總有同名的人存在,,,額,你可能會說:id就不會重復了,但是對我們這個有啥意義,如果在資料庫中id被設置成唯一的,那根本就不可能存在重復的id,你在插入重復的id時,資料庫已經報錯不允許你插入,也就不會出現重復了。。。。所以說上面的sql有點小問題,正確的思路就是把上面的第1步改為:根據表中除唯一鍵之外的所有欄位進行分組。就能完美的刪除表中的重復行了,,,不過,這個性能嘛。。。。當我沒說。。。。