安插不重复记录~求一mysql语句~
插入不重复记录~~~求一mysql语句~~~
表结构很简单:
- SQL code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--------------------------------id | cat | article-------------------------------- 1 abc 1 2 aaa 2 3 ccc 1--------------------------------
其中id是唯一主键,AUTO_INCREMENT,对于插入记录来讲没什么用。
现在要插入一些记录,当新记录的cat和article_id在原先数据中都未出现时才允许插入。比如cat='ddd',article=1和cat='aaa',article=1的记录都允许插入,但是cat="abc",article=1和cat="ccc",article=1的记录都不允许插入,因为已经存在这样的记录了。
请问怎么写mysql语句呢?
网上找的帖子,看得不是很懂,貌似都依赖主键不重复的。
------解决方案--------------------
在 cat 和 article 上做联合唯一索引
插入时用 replace 指令
------解决方案--------------------
你都不看手册的吗?这样如何进步?
CREATE [UNIQUE|FULLTEXT] INDEX index_name
ON tbl_name (col_name[(length)],... )
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
or REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT ...
or REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name=expression, col_name=expression,...
REPLACE 功能与 INSERT 完全一样,除了如果在表中存在一个老的记录与新记录在一个 UNIQUE 或 PRIMARY KEY 上有相同的值,那么在新记录被插入之前,老的记录将被删除。查看章节 6.4.3 INSERT 句法。
换句话说,你不可以从一个 REPLACE 中访问老的记录行的值。某些老的 MySQL 版本中,你或许可以这样做,但是这是一个 Bug,现在已被修正了。
为了能够使用 REPLACE,你必须有对该表的 INSERT 和 DELETE 权限。
当你使用一个 REPLACE 时,如果新的记录行代替了老的记录行,mysql_affected_rows() 将返回 2。这是因为在新行被插入之前,重复记录行被先删除了。
这个事实使得判断 REPLACE 是否是添加一条记录还是替换一条记录很容易:检查受影响记录行的值是 1 (添加)还是 2(替换)。
注意,除非你使用一个 UNIQUE 索引或 PRIMARY KEY ,使用 REPLACE 命令是没有感觉的,因为它会仅仅执行一个 INSERT。
------解决方案--------------------
那你就这样: insert ignore into .............
但是也要在 cat 和 article 上做联合唯一索引
------解决方案--------------------
最笨的办法就是插入前,select一下是否该值已存在。
------解决方案--------------------
直接用select查吧
------解决方案--------------------
repalce into tablename(id,name) values('.$id.','".$name."'); or replace into tablename(id,name) select id,name
------解决方案--------------------
按楼主的想法先select再insert这种方式还不如replace呢
------解决方案--------------------
建议用replace,比较简单高效。
------解决方案--------------------
select 白瞎,又不锁表, 根本不是原子的,白判断。
直接唯一索引插入看结果。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Méthode de traitement asynchrone de la programmation simultanée SelectChannelsGo à l'aide de golang Introduction : La programmation simultanée est un domaine important dans le développement de logiciels modernes, qui peut améliorer efficacement les performances et la réactivité des applications. Dans le langage Go, la programmation simultanée peut être implémentée de manière simple et efficace à l'aide des instructions Channels et Select. Cet article explique comment utiliser Golang pour les méthodes de traitement asynchrone de la programmation simultanée SelectChannelsGo et fournit des informations spécifiques.

Comment masquer l'élément select dans jquery : 1. méthode hide(), introduisez la bibliothèque jQuery dans la page HTML, vous pouvez utiliser différents sélecteurs pour masquer l'élément select, le sélecteur ID remplace le selectId par l'ID de l'élément select que vous utilisez réellement ; 2. la méthode css(), utilisez le sélecteur d'ID pour sélectionner l'élément de sélection qui doit être masqué, utilisez la méthode css() pour définir l'attribut d'affichage sur aucun et remplacez selectId par l'ID de l'élément de sélection.

La différence entre les instructions insertignore, insert et replace existe déjà ou non. Exemple d'erreur d'insertion Insertintonames(name,age)values("Xiaoming",23);insertignore ignore insertignoreintonames(name,age)values("Xiaoming",24) ;replace Remplacer et insérer replaceintonames(name,age)values("Xiao Ming", 25); exigences de la table : clé primaire, ou résultat d'index unique : l'identifiant de la table sera automatiquement incrémenté. Le code de test crée la table.

MySQL est un système de gestion de bases de données relationnelles couramment utilisé qui fournit une variété de fonctions pour traiter et exploiter les données. Parmi eux, la fonction REPLACE est utilisée pour remplacer la partie spécifiée de la chaîne. Dans cet article, nous présenterons comment utiliser la fonction REPLACE pour le remplacement de chaînes dans MySQL et démontrerons son utilisation à travers des exemples de code. Tout d’abord, jetons un œil à la syntaxe de la fonction REPLACE : REPLACE(str, search_str, replace_str).

jQuery est une bibliothèque JavaScript populaire qui peut être utilisée pour simplifier la manipulation du DOM, la gestion des événements, les effets d'animation, etc. Dans le développement Web, nous rencontrons souvent des situations dans lesquelles nous devons modifier la liaison d'événements sur des éléments sélectionnés. Cet article explique comment utiliser jQuery pour lier des événements de modification d'éléments sélectionnés et fournit des exemples de code spécifiques. Tout d'abord, nous devons créer un menu déroulant avec des options utilisant des étiquettes :

Utilisez la fonction StringBuilder.insert() de Java pour insérer une chaîne à une position spécifiée. StringBuilder est une classe en Java utilisée pour gérer les chaînes variables. Elle fournit une variété de méthodes pour faire fonctionner les chaînes. méthodes courantes d’insertion positionnelle de chaînes. Dans cet article, nous présenterons comment utiliser la fonction insert() pour insérer une chaîne à une position spécifiée et donnerons des exemples de code correspondants. insérer()

Quelles sont les techniques de recherche et de remplacement de chaînes en Python ? (Exemple de code spécifique) En Python, les chaînes sont un type de données courant, et nous rencontrons souvent des opérations de recherche et de remplacement de chaînes dans la programmation quotidienne. Cet article présentera quelques techniques courantes de recherche et de remplacement de chaînes, accompagnées d'exemples de code spécifiques. Pour rechercher une sous-chaîne spécifique dans une chaîne, vous pouvez utiliser la méthode find() ou la méthode index() de la chaîne. La méthode find() renvoie l'index de la première occurrence de la sous-chaîne dans la chaîne.

À l'ère actuelle du développement Web, une gestion efficace et efficiente des tables est devenue très importante, en particulier lorsqu'il s'agit d'applications Web gourmandes en données. La possibilité d'ajouter, de modifier et de supprimer dynamiquement des lignes d'un tableau peut améliorer considérablement l'expérience utilisateur et rendre les applications plus interactives. Un moyen efficace d’y parvenir consiste à exploiter la puissance de jQuery. jQuery fournit de nombreuses fonctionnalités pour aider les développeurs à effectuer des opérations. Lignes de tableau Une ligne de tableau est une collection de données interdépendantes, représentées par des éléments en HTML. Il permet de regrouper des cellules (représentées par des éléments) dans un tableau. Chaque élément est utilisé pour définir une ligne dans le tableau, et pour les tableaux multi-attributs, il contient généralement un ou plusieurs éléments. Syntaxe$(sélecteur).append(co
