簡體   English   中英

(MYSQL) 如何僅在表中不存在記錄時插入記錄

[英](MYSQL) How to insert a record only if it doesn't exist in a table

嗨,也許這個問題已經得到回答,但沒有任何幫助。

我正在使用 Mysql 並且我想在表中插入一些數據,但我想在插入之前檢查重復的記錄。

我對如何實現這一目標感到非常困惑。

我需要檢查是否“RFC==$Expediente AND Diagonal ==10 或 Diagonal==20”並顯示類似“記錄已經存在”的內容,或者如果記錄不存在則插入所有數據

這是我的腳本:

<?php
$Person_name=$_POST['Person_name'];
$Expediente=$_POST['Expediente'];
$Sexo=$_POST['Sexo'];
$Edad=$_POST['Edad'];
$Domicilio=$_POST['Domicilio'];
$numero=$_POST['Numero'];
$colonia=$_POST['Colonia'];
$Ciudad=$_POST['Ciudad'];
$Parentesco=$_POST['Parentesco'];
$ClinicaAds=$_POST['ClinicaAds'];
$Dependencia=$_POST['Dependencia'];
$Entidad=$_POST['Entidad'];
$Foraneo=isset($_POST['Foraneo']) ? 1 : 0;

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "issste";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "  INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario, Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal)  
                SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero', '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo', '$Parentesco' FROM paciente  
                WHERE NOT EXIST(  
                 SELECT RFC, Diagonal FROM paciente WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20') LIMIT 1 ";  

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

當我運行我的程序時出現此錯誤

“您的 sql 語法有錯誤,請檢查與您的 mysql 服務器版本相對應的手冊”

修改您的查詢,嘗試這樣的事情:

INSERT INTO paciente (RFC, Nombre, Sexo, FechaNacimiento, Calle, NumeroDomiciliario,
            Colonia, Ciudad, Dependencia, ClinicaAdscrip, Entidad, Foraneo, Diagonal)  
  SELECT '$Expediente', '$Person_name', '$Sexo', '$Edad', '$Domicilio', '$numero',
         '$colonia', '$Ciudad', '$Dependencia', '$ClinicaAds', '$Entidad', '$Foraneo',
         '$Parentesco'
  WHERE NOT EXISTS( SELECT RFC, Diagonal FROM paciente
                    WHERE RFC = '$Expediente' AND Diagonal='10' OR Diagonal='20' LIMIT 1 )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM