求mysql语句(insert之前先查询)
数据表如下:
<code>id parent a b others --------------------------------------- 1 0 7 8 --------------------------------------- 2 1 8 7 --------------------------------------- 3 1 7 8 --------------------------------------- 4 1 8 7 ---------------------------------------</code>
比如:现在已知a=7、b=8,但不知道parent的值,插入之前要查询数据表中已存在a=7 && b=8
的,或者a=8 && b=7
的那条记录的parent的值(保证数据表中满足a=7 && b=8
,或者a=8 && b=7
的那些记录的parent都是同一个值)。
请问如何写sql?先select后insert?一条语句能搞定么
回复内容:
数据表如下:
<code>id parent a b others --------------------------------------- 1 0 7 8 --------------------------------------- 2 1 8 7 --------------------------------------- 3 1 7 8 --------------------------------------- 4 1 8 7 ---------------------------------------</code>
比如:现在已知a=7、b=8,但不知道parent的值,插入之前要查询数据表中已存在a=7 && b=8
的,或者a=8 && b=7
的那条记录的parent的值(保证数据表中满足a=7 && b=8
,或者a=8 && b=7
的那些记录的parent都是同一个值)。
请问如何写sql?先select后insert?一条语句能搞定么
@Eapen 参考我对你的回答的评论。
@xaero 我觉得你的问题把我们都带偏了。
对于消息的首发来说是不存在parent这个属性的,因为消息是按照时间顺序排列的。只有论坛的帖子回复才有parent的问题,这个parent可以在前台显示的时候使用,可以把相关的讨论集中起来便于阅读,因为这种结构打破了发帖时间的规律,所以才需要额外的指定parent。
明显消息不存在这个问题,就算你的消息是针对某个话题产生的,那也应该是reference_id而不是parent。
你们觉得呢?
我理解你的意思了。这可以通过另一个表去维护。
table message_groups
group_id users
1 7,8 //信息交流者,按照用户id从小到大排列,用逗号分隔
2 7,9
...
table messages
group_id from_user to_user message time
1 7 8 Test1 ....
1 8 7 Re: Test1 ....
这样你觉得有帮助吗?
<code>IF EXISTS (SELECT * FROM Table_Name WHERE (a='7' and b='8') OR (a='8' and b='7')) BEGIN --EXIST END ELSE BEGIN INSERT INTO Table_Name(Column,...) VALUES('') END</code>
有点没懂 为什么不知道parent的值?在读取列表的时候就应该知道id的值了呀写入的时候直接带上就行
oschina的私信功能就是这样的,明明是已经存在的一对用户会话,我不“回复”,点“新发送”,也会归纳为原先的会话。。。不知道是怎么实现的。。。。oschina上都是无关痛痒的聊天,没人答
你可以写存储过程的,可以完美解决你的问题。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan
